Clear Filters
Clear Filters

Multiply cell doubles with a matrix

3 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)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!