Multiplications inside a cell array
11 次查看(过去 30 天)
显示 更早的评论

Hi everyone,
The above 4x12 is a cell array. Each cell contains numbers. What I want to do next is matrix multiplication between all elements of row 2 with row 4. So, (1,2)*(4,2). This will give a 33by33 matrix. Next, I want to store it in a new variable. But since this is a cell structure I am not able to do it and need help.
How can I concatenate it? Or should i convert the cell array to something else to make my life easier?
Thank you for your help.
0 个评论
采纳的回答
Kevin Phung
2019-1-23
use cell brackets to access contents of the cell array.
so if c is your 4x12 cell array, then c{2,1} would retun the array inside instead of the cell.
0 个评论
更多回答(1 个)
Guillaume
2019-1-23
编辑:Guillaume
2019-1-23
result = cellfun(@times, yourcellarray(1, :), yourcellarray(4, :), 'UniformOutput', true)
will create a 1x12 cell array of 33x33 matrices. The same implemented as a loop:
result = cell(1, size(yourcellarray, 2));
for idx = 1:size(yourcellarray, 2)
result{idx} = yourcellarray{1, idx} .* yourcellarray{4, idx};
end
If you want a 33x33x12 matrix after that:
m = cat(3, result{:})
edit: got the wrong rows
edit again: and messed up the 'UniformOutput'
4 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!