访问矩阵matlab中的多个元素

时间:2016-04-19 06:43:55

标签: matlab

如何在matlab中有效地访问来自不同列的元素向量 例如:

A = [1 2 5 4
     4 6 2 5
     3 6 8 9
     2 4 5 7
     2 9 4 2]

检索:(1, 1) (2,2) (3,1) (4,4) (5,3)

2 个答案:

答案 0 :(得分:2)

使用sub2ind

ret = [1 1;
       2 2;
       3 1;
       4 4;
       5 3];

A( sub2ind(size(A), ret(:,1), ret(:,2)) )

答案 1 :(得分:1)

sub2ind几乎肯定是要走的路,但如果你真的需要快速,那么可能更快地找到它来自己计算线性指数:

A = [1 2 5 4
     4 6 2 5
     3 6 8 9
     2 4 5 7
     2 9 4 2]

ret = [1 1;
       2 2;
       3 1;
       4 4;
       5 3];

n = size(A,1)

A(ret(:,1) + (ret(:,2)-1)*n)