프로젝트의 경우 벡터에서 일련의 첫 번째 1을 찾으려고합니다. 예를 들어, 내가 입력으로 있습니다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이 모든 결과의 사람들이 '1'에서 '0'으로 전환 될 필요가있다.
다음 코드가 있지만 어떤 이유로 x1과 정확히 같은 값을 가진 Y1을 반환합니다.
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을 처음 사용한다면 "vectorized"일을 해보십시오. 루프가 다른 언어에서 사용되는 경우가 많이 있지만 Matlab에서는 'diff', 'sum'등과 같은 벡터화 된 연산을 사용하여 더 쉽게 (일반적으로 더 빠르게) 수행 할 수 있습니다. –