标签: matlab vector indexing
我有以下内容:
a = [1:10 1:10]; idx = [3 5 7]; b = a(idx); b = [3 5 7]; c = a(~idx); %this syntax is not correct! c = [1 2 4 6 8 9 10 1 2 3 4 5 6 7 8 9 10];
是否有直接的方式来获得c这样的?换句话说,我有一个向量,我想要排除给定索引处的元素,我该怎么做?
c
答案 0 :(得分:2)
显式方式:生成否定的逻辑索引:
logical_idx = true(1,numel(a)); logical_idx(idx) = false; c = a(logical_idx);
使用setdiff或ismember的更紧凑的代码:
setdiff
ismember
c = a(setdiff(1:numel(a), idx));
或
c = a(~ismember(1:numel(a), idx));
直接删除由idx索引的元素:
idx
c = a; c(idx) = [];