How do I populate the next term in an If/elseif code?

조회 수: 8 (최근 30일)
Alan Gallagher
Alan Gallagher 2015년 3월 11일
댓글: Alan Gallagher 2015년 3월 11일
Here's my code:
N=[];
for i=1:length(timeStep);
if timeStep(i)>33;
N(i)=1;
elseif timeStep(i)<=33;
N(i)=0;
end
end
n=N';
n(1)=1;
If timeStep at i is greater than 33, I would like N of the NEXT term (i+1) to be populated with a 1. However, changing the code to N(i+1)=1 does not work.
What would make this work for me?
Thank you in advance.

채택된 답변

Michael Haderlein
Michael Haderlein 2015년 3월 11일
Why should it not work to change it to N(i+1)=1?
I'm wondering what's the desired output for timeStep between 35 and 40?
In any case, you can very simply vectorize the code:
N=[1 timeStep>40];
  댓글 수: 4
Michael Haderlein
Michael Haderlein 2015년 3월 11일
I think that's what my code line is doing:
>> timeStep=[32 32 500 32 32 32 32 500 32 32];
>> N=[1 timeStep>40];
>> [timeStep;N(1:end-1)]
ans =
32 32 500 32 32 32 32 500 32 32 % <--timeStep
1 0 0 1 0 0 0 0 1 0 % <--N
% ^first after 500 ^first after 500
Here you can compare timeStep and N. Of course, N will have one more value, so I removed the last one for the comparison.
Alan Gallagher
Alan Gallagher 2015년 3월 11일
Thanks Michael, this worked!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by