【发布时间】:2016-04-19 06:43:54
【问题描述】:
如何在 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)
【问题讨论】:
标签: 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)
【问题讨论】:
标签: matlab
使用sub2ind:
ret = [1 1;
2 2;
3 1;
4 4;
5 3];
A( sub2ind(size(A), ret(:,1), ret(:,2)) )
【讨论】:
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)
【讨论】: