How can I get the elements from a matrix and use them as the coordinates in another matrix

1 view (last 30 days)
I have a matrix
W=[1 3 4 1
1 2 3 1
1 2 4 1]
and I want to get the values of another matrix
C=[0 3 7 8
3 0 1 4
7 1 0 2
8 4 2 0].
That is, I want to take firstly the values of C which exist in (1,3) position, (3,4) position and (4,1) position (the first row of W), i.e. 7,2 and 8 respectively in matrix C and the sum of these values (18). The same indeed for all the rows.

Accepted Answer

Matt J
Matt J on 10 Feb 2020
Edited: Matt J on 10 Feb 2020
D = C( sub2ind( size(C), W(:,1:end-1), W(:,2:end) ) ),
sum(D,2)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!