Matlab中代码开关和IF-Else的替代

Matlab中代码开关和IF-Else的替代,matlab,if-statement,switch-statement,Matlab,If Statement,Switch Statement,下面是MATLAB代码。在代码下面,我将讨论它的问题,对于这些问题,我需要一种替代方法 if((a>b) && (c>d) && (e==f) || (g<h) || (i==j)) msgbox('This is 1st','Recognize'); elseif((a>b) && (c>d) && (e==f) || (g>h) || (i~=j)) msgbox('This is 2

下面是MATLAB代码。在代码下面,我将讨论它的问题,对于这些问题,我需要一种替代方法

if((a>b) && (c>d) && (e==f) || (g<h) || (i==j))
msgbox('This is 1st','Recognize');
elseif((a>b) && (c>d) && (e==f) || (g>h) || (i~=j))
    msgbox('This is 2nd','Recognize');
elseif( (e==f) || (g<h) || (i==j))
    msgbox('This is 3rd','Recognize');
elseif((a>b) && (c>d) && (e==f))
    msgbox('This is 4th ','Recognize');
.
.
.
    elseif((a>b) && (c>d))
        msgbox('This is 32nd','Recognize');
else
msgbox('Condition not meet','Recognize');
if((a>b)&(c>d)&(e==f)| |(gb)&&(c>d)&&(e==f)| |(g>h)| |(i~=j))
msgbox('这是第二个','识别');
elseif((e==f)| |(gb)&&&(c>d)&&(e==f))
msgbox(‘这是第四个’,‘识别’);
.
.
.
其他((a>b)和&(c>d))
msgbox('这是第32个','识别');
其他的
msgbox('条件不满足','识别');
我面临的问题:

1.有32种不同的
if-else-if
。根据规则,当一个
if
elseif
变为真时,其余的将被跳过

2.如果我只使用
If
(而不是
else
),那么所有内容都将单独检查,但处理时间太长。可能不止一个条件同时变为真

3.
开关
也可作为
if-else if
(当一个案例为真时,其余的将被忽略)


所需的解决方案是:所有32个条件都应该被检查,最好的条件将被执行。

您可以执行以下操作

action = 1^a + 2^b + 2^c + ...

然后将数字
action
用于
开关
或访问单元格或数组(其中包含字符串)中的值。

我建议您了解操作的原理。我相信你可以用这种方式来阐述你的问题。谢谢你的建议。这对我来说很难。好吧,我会认为这是一个选项。你如何决定这32个条件中的“最好”?你希望这些条件中的几个条件同时是<代码>真< /代码>吗?如果是,您希望执行与
TRUE
条件对应的所有语句,还是仅执行1?如果只有1,您如何决定必须执行哪一个?(这回答了@Divakar的问题:您如何决定哪一个是最好的?)为什么不给我们更多的见解,并解释为什么您需要检查32个条件?这样,我们就有可能为这种(不充分的)执行任务的方案提出替代方法。