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

9 vues (au cours des 30 derniers jours)
Alan Gallagher
Alan Gallagher le 11 Mar 2015
Commenté : Alan Gallagher le 11 Mar 2015
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.

Réponse acceptée

Michael Haderlein
Michael Haderlein le 11 Mar 2015
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 commentaires
Michael Haderlein
Michael Haderlein le 11 Mar 2015
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 le 11 Mar 2015
Thanks Michael, this worked!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by