2015-12-19 4 views
1

У меня есть список координат, которые я хотел бы попробовать из матрицы. Есть ли элегантный способ сделать это?Как пробовать матричные элементы в matlab

В идеале, то, что выглядит как:

A = magic(5) 

A = 

    17 24  1  8 15 
    23  5  7 14 16 
    4  6 13 20 22 
    10 12 19 21  3 
    11 18 25  2  9 

r = 1:5; % row coordinates 
c = 5:-1:1; % column coordinates 

A(r,c) 

ans = 

    15 14 13 12 11 

что эквивалентно

for k=1:length(r) 
    A(r(k), c(k)) 
end 

Я уверен, что кто-то спросил, но я не мог найти его в любом месте.

+2

См: [ 'sub2ind'] (http://www.mathworks.com/help/matlab/ref/sub2ind.html) – excaza

ответ

2

Применение @excaza комментарий Я был в состоянии решить эту проблему с:

rc_ids = sub2ind(size(A), r,c); 
A(rc_ids)