How do I populate the next term in an If/elseif code?
1 回表示 (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
採用された回答
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
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.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!