假设我有一个包含1..100
之间数字的向量,然后我随机生成一些数字(假设有五个项目和随机项目为[3 5 45 66 77]
。那么我想从我的数据中排除这个项目。
data = [1..100]
blocklistitems=[3 5 45 66 77]
cleandata = data exclude blocklist
如何在Matlab中从矢量中排除某些数据?
答案 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);