Sum two cells and write to a third cell
古いコメントを表示
I have three cells A{10}, B{10} and C{10} of size 5x5. On each cell I want to do: A(:,1) = B(:,1) + C(:,1) I might also want to do: A(2:4,5) = B(2:4,5) + C(2:4,5)
Currently if I just write something like above, I will get error as Index exceeds matrix dimensions.
Any ideas on how this can be done (as fast as possible)
採用された回答
その他の回答 (1 件)
Walter Roberson
2015 年 5 月 11 日
編集済み: Walter Roberson
2015 年 5 月 12 日
0 投票
cellfun()
However, the method to do it "as fast as possible" is likely to involve creating some mex code written in C and optimizing the heck out of it. It would probably take you a few months to learn how to do properly -- I know the resident expert James Tursa is still learning about using mex after what must be at least 8 years of working with it.
3 件のコメント
Walter Roberson
2015 年 5 月 11 日
Use an anonymous function.
A = cellfun(@(a, b, c) [a(:,1:end-1), b(:,1) + c(:,1)], A, B, C, 'Uniform', false);
User05
2015 年 5 月 12 日
カテゴリ
ヘルプ センター および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!