상수는 2D 행렬 mat1
입니다. 2D 셀 배열 mat2
모든 셀에는 2D 또는 3D 이중 행렬이 들어 있습니다. 이 두 행렬의 행 및 열 수는 mat1
입니다. 나는 mat2
내의 각 더블 매트릭스의 모든 슬라이스에 (. *) mat1
을 곱해야합니다. 그 결과는 mat2
과 같은 크기의 다른 셀 배열 results
일 필요가 있습니다. 따라서 contatining double 행렬은 크기면에서 mat2
의 double 행렬과 같아야합니다.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