Matrix addition of a first column in a loop
3 次查看(过去 30 天)
显示 更早的评论
i have a cell A with 'n' cells inside. inside each cell i have a matrix. i want to do matrix addition of all the first column of these matrices inside a for loop. how to do it?
for i=1:n
% matrix addition code
end
采纳的回答
Guillaume
2018-3-29
编辑:Guillaume
2018-3-29
With a loop:
colsum = yourcellarray{1}(:, 1);
for cidx = 2:numel(yourcellarray)
colsum = colsum + yourcellarray{cidx}(:, 1);
end
With cellfun:
colsum = sum(cell2mat(@(m) m(:, 1), yourcellarray, 'UniformOutput', false)), 2);
Either way, the matrices in each cell must have the same height.
Note that if all the matrices in the same array are the same size, then storing them as an N-d array (where N = ndim(yourmatrices)+1) would make your life much easier:
allmatrices = cat(ndim(yourcellarray{1})+1, yourcellarray{:});
colsum = sum(allmatrices(:, 1), ndim(allmatrices));
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numeric Types 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!