I = [2 1];
A = [7 11
8 17];
如何在没有循环的情况下在 A 中选择正确的值for
? I
是 A
中每列的索引向量。那是I(1) is 8
和I(2) = 11
.
使用 sub2ind
根据右行和列坐标生成线性索引,然后使用这些索引索引到 A
中。 在这种情况下,I
选择正确的行,并且您只想为从第一列到最后一列的每个列选择一个元素:
ind = sub2ind(size(A), I, 1:numel(I));
out = A(ind);
例
>> I = [2 1];
>> A = [7 11
8 17];
>> ind = sub2ind(size(A), I, 1:numel(I));
>> out = A(ind);
>> out
out =
8 11