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
  1 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2018 年 3 月 29 日
Can you elaborate your question?

サインインしてコメントする。

採用された回答

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 Center および File ExchangeNumeric Types についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by