Using a matrix as pairs of indexes of another matrix

9 views (last 30 days)
For instance:
x=[
1 2 3 4 5 6 7 8 9
10 20 30 40 50 60 70 80 90
100 200 300 400 500 600 700 800 900];
% idx are coordinates (row,col) of x array
idx=[1 3
2 5
3 8];
for i=1:size(idx,1) % cycle through pairs of idx
y(i)=x(idx(i,1),idx(i,2));
end
y
y =
3 50 800
How can this be done without a loop?

Accepted Answer

Stephen23
Stephen23 on 4 Jul 2019
Edited: Stephen23 on 4 Jul 2019
"How can this be done without a loop?"
Using sub2ind, which converts to linear indices:
>> ind = sub2ind(size(x),idx(:,1),idx(:,2));
>> x(ind)
ans =
3
50
800

More Answers (0)

Community Treasure Hunt

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

Start Hunting!