带数组的索引矩阵

时间:2015-12-05 02:25:49

标签: matlab indexing

我想索引矩阵

x=[1:5;6:10]

x =

1    2    3    4    5
6    7    8    9   10

使用数组

 [1,2,1,2,1]

获取

1 7 3 9 5

我试过了:

x([1,2,1,2,1],:)

ans =

    1    2    3    4    5
    6    7    8    9   10
    1    2    3    4    5
    6    7    8    9   10
    1    2    3    4    5

但这不是我想要的。请帮忙

2 个答案:

答案 0 :(得分:5)

我将linear indexing用于sub2ind

>> v = x(sub2ind(size(x),a,1:5))
v =
     1     7     3     9     5

答案 1 :(得分:2)

ind = [1, 2, 1, 2, 1];
offset = [1:size(x, 1):numel(x)] - 1;

然后

x(ind + offset)

返回您想要的内容。这假设您的索引向量为x的每一列都有一个条目,并使用线性索引为每个列内索引添加列偏移量。