借助for循环在Matlab中创建一个新的向量

时间:2017-06-05 07:19:32

标签: matlab

给定向量x,我想通过检查u0的组件来分量创建向量x。由于只有0 <= 0 < 1为真,并且由于0x的第一个组成部分,因此新的向量u0实际上应该看起来像[1, 0, 0, 0, 0, 0, 0, 0],而是Matlab给我一个只包含0的向量。我做错了什么?

x = [0, 1, 2, 3, 4, 5, 6, 7, 8];
u0 = [];

for i = 1:8
  if (0 <= x(i) < 1)
    u0(i) = 1;
  else
    u0(i) = 0;
  end
end

1 个答案:

答案 0 :(得分:2)

您的if条件不正确。你需要检查它。你必须像下面这样继续。

x = [0, 1, 2, 3, 4, 5, 6, 7, 8];
u0 = zeros(size(x));

for i = 1:8
    if x(i) >= 0 && x(i)<1
        u0(i) = 1;
    else
        u0(i) = 0;
    end
end

此外,您可以使用以下内容在一行中获取任务:

u1 = zeros(size(x)) ;
u1(x>=0 & x<1) = 1 ;