MATLAB: How to use for loop

for loop

Let's say I have a matrix A = zeros(1000,500). I have two another matrices of size 2 X 50 each for example B = [1 2 3 …. 50 ; 2 4 6 …. 100] and C = [3 6 9 …. 150 ; 4 8 12 ….200]. Let's say I have another matrix D of same size 2 X 50 with some numbers for example [2 4 2 … 67 ; 6 9 3 …. 54]. Now I have add up all these random numbers in matrix D into the matrix A only at the positions dictated by the matrix B and C. For example the first row in matrix B and C as in [1 2 3 …. 50] and [3 6 9 …. 150] are the x and y positions/co-ordinate where the first row of random numbers as in [2 4 2 …. 67] are to be added with matrix A. The same thing goes for the second row also. Clearly, I have to add [2 4 2 …. 67] to the matrix A at the positions [(1,3) (2,6) (3,9) …. (50,150)] and similarly add up [6 9 3 …. 54] to the matrix A at the positions [(2,4) (4,8) (6,12) …. (100,200)].
How can I use for loop to code this ?

Best Answer

It does not matter, if B and C are matrices, but you care about the value of the elements only - correctly?
for k = 1:numel(B)
A(B(k), C(K)) = A(B(k), C(K)) + D(k);
end
This seems to be very easy. Did you try anything else?