私は定数2Dの二重行列mat1
を持っています。また、2Dセル配列mat2
を持っています。すべてのセルには、2Dまたは3Dのダブルマトリックスが含まれています。これらの2つの行列の行数と列数はmat1
と同じです。私はmat2
の各ダブルマトリックスのすべてのスライスに(。*)mat1
を掛けなければなりません。結果は、mat2
と同じサイズの別のセル配列results
である必要があります。これにより、有効な倍精度行列は、サイズの点でmat2
の倍精度行列に等しくなければなりません。MATLAB:セル配列内の3D行列を2D行列に掛ける
説明のためにmat1
とmat2
を生成するコードを示します。私は乗算が起こるべきところで苦労しています。
rowCells = 5;
colCells = 3;
rowTimeSeries = 300;
colTimeSeries = 5;
slices = [1;10];
% Create 2D double matrix
mat1 = rand(rowTimeSeries, colTimeSeries);
% Create 2D cell matrix comprisiong 2D and/or 3D double matrices
mat2 = cell(rowCells,colCells);
for c = 1:colCells
for r = 1:rowCells
slice = randsample(slices, 1, true);
mat2{r,c} = rand(rowTimeSeries, colTimeSeries, slice);
end
end
% Multiply (.*) mat1 with mat2 (every slice)
results = cell(rowCells,colCells);
for c = 1:colCells
for r = 1:rowCells
results{r,c} = ... % I am struggling here!!!
end
end
コードは完全に機能しています。どうもありがとう。 – Andi
心配なし、歓声 – Wolfie