Using switch case with multiple variables (instead of just n, with n1, n2, etc.).
149 次查看(过去 30 天)
显示 更早的评论
Hello all,
I'm trying to find a way to run the following code:
x1=4;
x2=4;
y1=4;
y2=4;
switch x1,x2,y1,y2
case x1>0 && y1<0 && ((y2>0) || (y2<0 && x2<0) || (x2>0 && y2<y1))
disp('Subtract from 360')
otherwise
disp('Keep as is')
end
and I get this error:
Error: File: untitled5.m Line: 5 Column: 11
Invalid expression. Check for missing multiplication operator, missing or unbalanced delimiters, or
other syntax error. To construct matrices, use brackets instead of parentheses.
I'm not sure if I can use switch case with mutliple variables like that. I'd appreciate it if anyone could lend me hand about this.
0 个评论
采纳的回答
Cris LaPierre
2019-3-10
You can only switch on one variable. Try this instead
x1=4;
x2=4;
y1=-4;
y2=4;
switch true
case x1>0 && y1<0 && (y2>0 || y2<0 && x2<0 || x2>0 && y2<y1)
disp('Subtract from 360')
otherwise
disp('Keep as is')
end
2 个评论
Steven Lord
2019-3-10
Or as an even easier approach:
x1=4;
x2=4;
y1=-4;
y2=4;
if x1>0 && y1<0 && (y2>0 || y2<0 && x2<0 || x2>0 && y2<y1)
disp('Subtract from 360')
else
disp('Keep as is')
end
If you need to add more conditions, add elseif blocks inside the if block, before the else keyword.
Alternately, since this looks like you're using x and y coordinates to generate an angle, the atan2d function may be of use to you.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!