有没有办法制定条件,如果if
下的语句/矩阵出现错误,那么在else
下执行语句?
即
if (some condition)
some statment1/matrix1/variable1
some statement2/matrix2/variable2
some statement3/matrix3/variable3
else newstatement/matrix %come to else part of the code if any of the statements 1,2 or 3 under if condition yields any error like dimension mismatch or anyother
end
答案 0 :(得分:6)
没有内置机制可以跳转到else
部分。但是你可以使用这样的结构:
condition_flag = (some condition);
error_flag = false;
if condition_flag
try
some statment1/matrix1/variable1
some statement2/matrix2/variable2
some statement3/matrix3/variable3
catch
error_flag = true;
end
end
if ~condition_flag || error_flag
%if any of the statements 1,2 or 3 under if condition yields any error like dimension mismatch or anyother
....
error_flag = false;
end
答案 1 :(得分:0)
Mohsen Nostrania的替代解决方案。
else_flag=true;
if (condition)
try
%% The if code
else_flag=false;
end
end
if else_flag
%% The else code
end
else_flag=false;
命令仅在condition
为真且<if code>
内未发生错误时执行。
请注意,两个解决方案都按照您的要求执行 - 执行<if code>
命令直到发生错误,然后执行<else code>
。
答案 2 :(得分:0)
如果想要减少if
陈述的tre数量:
try
if statement
%% The if code
else
%% Obvious error
a(0);
end
catch
%% The else code
end