我有一个矩阵,例如
A = [ 1 2 3; 4 5 6; 7 8 9] ;
和一个大小为 1x3 的向量,它指定每一行中的哪个元素是我正在寻找的元素 - 即如果
vector = [ 1 2 1 ]
那么期望的输出是
[ 1 5 7 ]
因为 1
是第 1 行中的第 1 个元素,5
是第 2 行中的第 2 个元素,而 7
是第 3 行中的第一个元素。
我如何实现这一目标?找不到内置函数来执行此操作,这让我很惊讶。
最佳答案
MATLAB 提供了 SUB2IND将行/列下标转换为线性索引的函数:
>> A = [1 2 3; 4 5 6; 7 8 9];
>> idx = sub2ind(size(A),1:3,[1 2 1]); %# rows: [1 2 3], cols: [1 2 1]
>> A(idx)
1 5 7
关于MATLAB 索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4842512/