MATLAB: How to index into a 2D matrix using two equal length R and C vectors

indexingMATLAB

I have a 2D matrix rho, and two vectors of indices R and C. How do I use R and C to index into rho?
>> rho=d
rho =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> R=[1 2]; C=[ 2 3];
i.e I want to obtain rho(R(1), C(1) ..etc

Best Answer

You can use a combination of linear indexing and the function sub2ind to index into rho:
>> rho=d
rho =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> R=[1 2]; C=[ 2 3];
>> ind = sub2ind(size(rho), R, C);
>> rho(ind)
ans =
2 10