从向量中排除一些数据

时间:2015-11-13 16:05:51

标签: matlab

假设我有一个包含1..100之间数字的向量,然后我随机生成一些数字(假设有五个项目和随机项目为[3 5 45 66 77]。那么我想从我的数据中排除这个项目。

data = [1..100]
blocklistitems=[3 5 45 66 77]
cleandata = data exclude blocklist

如何在Matlab中从矢量中排除某些数据?

1 个答案:

答案 0 :(得分:6)

data = [1..100]
blocklistitems=[3 5 45 66 77]
data(blocklistitems)=[]; %// completely removes, reduces length of array
data(blocklistitems)=nan; %// sets to nan

利用索引!

判断您的评论我认为您的数据并不像您在答案中那样简单,因为在这种情况下,索引方式是迄今为止最快的。使用@Divakar's comment使用setdiff可以为非连续整数数组实现相同的目的:

C = setdiff(data,blocklistitems);