使用索引矩阵检索具有否定精确索引的矩阵元素?

时间:2012-12-17 17:15:00

标签: matlab matrix matrix-indexing

例如,我有A=[11 24 33 47 52 67],我的索引矩阵为I = [2 3]所以我想从索引中得到A的元素而不是用I给出的索引。所以我希望{{1 }}。我怎么能这样做并将I用作否定索引矩阵?

2 个答案:

答案 0 :(得分:4)

去寻找

  idx = logical(ones(size(A)));   % // all indices here

或者,正如@Gunther Struyf建议的那样,

  idx = true(size(A));

然后

  idx(I) = 0;                       % // excluding not desired indices    
  B = A(idx);                       % // selection

可选地

 B = A;
 B(I) = [];

答案 1 :(得分:1)

您还可以使用setdiff排除索引。这是你的单行:

B = A(setdiff(1:numel(A), I))