如何获取未在索引数组中定义的数组元素?

时间:2018-06-29 15:40:18

标签: arrays matlab indexing vectorization

例如,我在MATLAB中有以下数组:

a = 11:20 ;

并且我想从a中提取以下索引元素中未定义的元素:

b = [2,3,5];

如果我执行以下get行:

a(b)

ans =

    12    13    15

我正在寻找一种与上述相反的方法,并且不引入循环来从a获取元素,并且这些元素的索引不在索引数组b中。

2 个答案:

答案 0 :(得分:2)

setdiff是您要查找的功能。

a(setdiff(1:end,b))

答案 1 :(得分:2)

另一种方法:

>> a = 11:20;
>> b = [2,3,5];
>> c = a;
>> c(b) = []
c =
   11   14   16   17   18   19   20

c(b)=[]c中删除由b索引的元素。