Multiply cell doubles with a matrix

4 views (last 30 days)
Mori
Mori on 13 Jul 2016
Commented: Mori on 13 Jul 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

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 13 Jul 2016
Edited: Andrei Bobrov on 13 Jul 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 Comments
Andrei Bobrov
Andrei Bobrov on 13 Jul 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 on 13 Jul 2016
ok great, it works. I relay appreciate.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!