How do I sum specific values of one matrix to another one?
2 次查看(过去 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 中查找有关 Random Number Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!