如何在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)
答案 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)