How do I make an if, elseif, else statement?
928 次查看(过去 30 天)
显示 更早的评论
if 0<x<10
y=4*x
elseif 10<x<40
y = 10*x
else
y = 500
end
I would expect test cases of
x= -1
x= 5
x= 30
x=100
2 个评论
Walter Roberson
2011-6-14
Good point, Jan.
zizo, Jan's point here is one that I pointed out to you before, when you asked a question a month ago, http://www.mathworks.com/matlabcentral/answers/7479-just-q
采纳的回答
Paulo Silva
2011-6-14
The correct way to do the conditions is this:
if 0<x & x<10
y=4*x
elseif 10<x & x<40
y=10*x
else
y=500
end
0 个评论
更多回答(1 个)
Sean de Wolski
2011-6-14
Or the vectorized solution:
y = repmat(500,size(x));
idx = 0<x&x<10;
y(idx) = 4*x(idx);
idx = 10<x&x<40;
y(idx) = 10*x(idx);
3 个评论
Sean de Wolski
2011-6-14
Is it just the order of operations that worries you?
BTW. I'm not even sure my approach would be faster than with the accelerated for-loops.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!