用Matlab创建向量

用Matlab创建向量,matlab,loops,vector,Matlab,Loops,Vector,在这段代码中,我试图得到要打印的向量,用数字3替换每个元素,直到第一个数字小于50为止 z=[4 3 2 5 7 9 0 64 34 49]; counter=1; while counter<length(z) if z(counter) >0 && z(counter) < 50 z(counter)=3; end counter=counter+1; end z z=[43257906434

在这段代码中,我试图得到要打印的向量,用数字3替换每个元素,直到第一个数字小于50为止

 z=[4 3 2 5 7 9 0 64 34 49];
 counter=1;

 while counter<length(z)
     if z(counter) >0 && z(counter) < 50
          z(counter)=3;

     end
     counter=counter+1;
 end
 z
z=[4325790643449];
计数器=1;
而计数器0和z(计数器)<50
z(计数器)=3;
结束
计数器=计数器+1;
结束
Z
代替z(计数器)=3…为什么我不能用z=[z 3]替换它? 为什么我不能用z=[z3]替换代码的第五行。Matlab不会让我做的
我对逻辑感到困惑。

您可以使用

 z(z<50 & z>0)=3;
z(z0)=3;

语句
z=[z3]
将值3附加到向量
z
,这似乎不是您想要的。相反,
z(counter)=3
3
替换由
counter
索引的当前元素

不太清楚你所说的
z(计数器=3)
。。。这不会出现在您的代码中。你是说
z(计数器)=3
?你说你想替换元素“直到你的第一个数字小于50”,但你的代码不是这样做的。此外,您的第一个数字(即4)小于50,因此您所描述的内容对示例数据没有任何影响。这是正确的吗?或者你描述的不正确?z(计数器)=3在第五行。我想知道为什么我不能用z=[z3]替换它。我很困惑,为什么当我使用z=[z3]时,matlab不让我这么做。