对于一个项目,我试图找到矢量中的一系列元素的第一个。例如,我有作为输入:转换matlab中的矢量元素
x1=[1 0 0 1 1 1 0 1 0 1 0 0 1 1]
,我需要的输出:
Y1=[1 0 0 1 0 0 0 1 0 1 0 0 1 0]
所以每次出现在载体中的1,所有因之那些需要变成零。
我有以下代码,但由于某种原因,它只是返回Y1,其值完全与x1相同。
n=numel(x1);
Y1=zeros(n,1);
for i = 1:n
if x1(i) == 1
Y1(i)= 1;
for j = (i+1): n
if x1(j)== 1
Y1(j)=0;
elseif x1(j) == 0
Y1(j)=0;
i=j+1;
break
end
end
elseif x1(i) == 0
Y1(i)= 0;
end
end
任何帮助将不胜感激。
谢谢你的回答,它的工作。 – user2991702
@ user2991702欢迎:-)如果您是Matlab新手,请尝试做“矢量化”的事情(如我的答案)。有很多情况下,循环将用于其他语言,但在Matlab中,通过几个向量化操作(如diff,sum等)可以更容易地完成(通常更快)。 –