Multiply cell doubles with a matrix

10 vues (au cours des 30 derniers jours)
Mori
Mori le 13 Juil 2016
Commenté : Mori le 13 Juil 2016
I have a cell array A which has 1*5 cell, each cell has 12*1 doubles.
How multiply those 12*1 doubles with a MATRIX call B with 12*500 ?
Thank you

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 13 Juil 2016
Modifié(e) : Andrei Bobrov le 13 Juil 2016
out = bsxfun(@times,permute(cell2mat(A),[1,3,2]),B); % out - 3D double array
or
out = cellfun(@(x)bsxfun(@times,x,B),A,'un',0); % here out - cell array (1 x 5)
  7 commentaires
Andrei Bobrov
Andrei Bobrov le 13 Juil 2016
for your data (MatFiles.mat):
A1 = cellfun(@(x)[x{:}]',A,'un',0);
out = bsxfun(@times,permute(cell2mat(A1),[1,3,2]),B); % out - 3D double array
or
out = cellfun(@(x)bsxfun(@times,x,B),A1,'un',0); % here out - cell array (1 x 5)
Mori
Mori le 13 Juil 2016
ok great, it works. I relay appreciate.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by