Matrix addition of a first column in a loop

조회 수: 1 (최근 30일)
Veera Kanmani
Veera Kanmani 2018년 3월 29일
편집: Guillaume 2018년 3월 29일
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
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개)

카테고리

Help CenterFile Exchange에서 Numeric Types에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by