Switch Loop with Boolean expressions? Can it be done?
3 次查看(过去 30 天)
显示 更早的评论
So I am trying to get a switch loop to display values of x=rand(1,10) when the values are greater than and smaller than 0.6?
Been trying with this however it keeps either telling me that my x value needs to be a scalar or character variable or just the regular unexpected error message.
switch (x)=true
case (x>0.6)
disp 'Large value in x found'
otherwise (x<0.6)
disp 'Small value in x found'
end
I know something else would be probably more pragmatic here but it's homwork so I do not make the rules...
Thanks in advance!
0 个评论
回答(1 个)
Walter Roberson
2019-10-27
switch true
with no variable..
Also the otherwise should not have a condition
3 个评论
Walter Roberson
2019-10-28
Yes.
I do not recommand this use of switch() but it is legal. It would almost always be clearer to use if/elseif trees instead of switch true
Guillaume
2019-10-28
As Walter said, yes you can do this.
As Walter also recommended, you shouldn't do it. The majority of readers (particularly people familiar with C-like languages) would expect a constant in the case expression and a non-constant expression for the switch. You're going to confuse a lot of people if you use that syntax.
If you do use it despite our recommendation, then a comment in the code explaining in details why it is used (as opposed to the simpler and clearer if...else) would be extremely recommended.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 C2000 Microcontroller Blockset 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!