How do I sum specific values of one matrix to another one?
1 回表示 (過去 30 日間)
古いコメントを表示
If I have a square matrix A, how can I add specific values from another matrix B
A=zeros(3)
B=[1 2;3 4]
If I want to sum such us B(1,1) in A(2,2) and B(2,2) in A(3,3) how can I do it so I can get:
A=[0 0 0;
0 2 0;
0 0 4]
I've tried using indexing but it turns out to be annoying for a square matrix of 10x10
0 件のコメント
採用された回答
Image Analyst
2021 年 11 月 16 日
編集済み: Image Analyst
2021 年 11 月 16 日
A=zeros(3);
B=[1 2;3 4];
A(2,2) = B(1,2);
A(3,3) = B(2,2)
Not sure what you want to sum with a 10x10 A and/or B. Please explain with a matrix of that size.
1 件のコメント
Image Analyst
2021 年 11 月 16 日
編集済み: Image Analyst
2021 年 11 月 16 日
What exactly do you mean by "sum" and "to" in "sum specific values of one matrix to another one"? Do you mean you want to add column 2 of B to A at positions where B is shifted one row and column into A. So if A is N rows and B is (N-1) rows then you'd add the values of column 2 of B to the diagonal of A, like this:
rows = 3;
A = zeros(rows); % Any rows-by-rows square array - could be any values.
B = reshape(1:(rows-1)^2, rows-1, rows-1)' % E.g. [1 2;3 4]
% Add column 2 of B, at one row more diagonally, to A.
for row = 2 : rows
A(row, row) = A(row, row) + B(row - 1, 2);
end
A % Show the final A in command window.
Essentially this is a for loop version of Star's vectorized version.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!