J'ai une matrice double 2D constante mat1
. J'ai également un tableau de cellules 2D mat2
où chaque cellule contient une matrice double 2D ou 3D. Ces matrices doubles ont le même nombre de lignes et de colonnes que mat1
. Je dois multiplier multiplier (. *) mat1
avec chaque tranche de chaque matrice double dans mat2
. Le résultat doit être un autre tableau de cellules results
de la même taille que mat2
, de sorte que les matrices doubles contatining doivent être égales aux matrices doubles de mat2
en termes de taille. Voici mon code pour générer mat1
et mat2
à des fins d'illustration Je me bats au point où la multiplication devrait avoir lieu.MATLAB: Multiplier une matrice 2D avec une matrice 3D dans des tableaux de cellules
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
votre code fonctionne parfaitement. Merci beaucoup. – Andi
Pas de soucis, bravo – Wolfie