Using a matrix as pairs of indexes of another matrix

6 次查看(过去 30 天)
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?

采纳的回答

Stephen23
Stephen23 2019-7-4
编辑:Stephen23 2019-7-4
"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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by