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

2 views (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)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!