【发布时间】:2014-12-17 08:20:26
【问题描述】:
我想创建一个没有数字 1 的向量。
x=-10:1:10;
为了避免这种情况:
for(n=0:21)
if(x(n)==1)
x(n)=[];
end
end
我能做什么?
【问题讨论】:
-
逻辑索引,学习了,爱了!
x(x==1)=[] -
嗯,我喜欢这个!谢谢!
我想创建一个没有数字 1 的向量。
x=-10:1:10;
为了避免这种情况:
for(n=0:21)
if(x(n)==1)
x(n)=[];
end
end
我能做什么?
【问题讨论】:
x(x==1)=[]
我会使用setdiff
>> setdiff(-5:5,1)
ans =
-5 -4 -3 -2 -1 0 2 3 4 5
【讨论】:
setdiff 干得好!这是开箱即用的想法。
您始终可以使用colon / : 而不是在向量中包含 1,而不是手动生成从 -10 到 10 的向量并删除值为 1 的条目。比如:
x = [-10:0 2:10];
因为它是一个很小的向量,与按照 David 的建议完全生成向量并删除一个条目相比,这样做可能不会获得太多收益。不过,我确实同意大卫的观点。学习逻辑索引!它是快速编写任何 MATLAB 代码的支柱之一。
【讨论】:
您可以尝试手动将其设置为“”。 例如 x(10)=[];
【讨论】: