【问题标题】:vector which skip's a step跳过一步的向量
【发布时间】: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)=[]
  • 嗯,我喜欢这个!谢谢!

标签: matlab vector


【解决方案1】:

我会使用setdiff

>> setdiff(-5:5,1)

ans =

    -5    -4    -3    -2    -1     0     2     3     4     5

【讨论】:

  • 啊! setdiff 干得好!这是开箱即用的想法。
【解决方案2】:

您始终可以使用colon / : 而不是在向量中包含 1,而不是手动生成从 -10 到 10 的向量并删除值为 1 的条目。比如:

x = [-10:0 2:10];

因为它是一个很小的向量,与按照 David 的建议完全生成向量并删除一个条目相比,这样做可能不会获得太多收益。不过,我确实同意大卫的观点。学习逻辑索引!它是快速编写任何 MATLAB 代码的支柱之一。

【讨论】:

    【解决方案3】:

    您可以尝试手动将其设置为“”。 例如 x(10)=[];

    【讨论】:

      猜你喜欢
      • 2015-11-07
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      相关资源
      最近更新 更多