switch, case, otherwise
sup: Matlab Conditional Statement
switch expression
case value_1
block_1
case value_2
block_2
otherwise
block_3
end以上语句执行中, 先计算表达式 expression 的值, 当结果等于1某个 case 语句的 value_i 时, 就执行该 case 语句下的代码块; 如果所有 case 语句的 value_i 都和 expression 计算结果不相等, 则执行 otherwise 语句下的代码块. 等价于以下 if, else, elseif 语句
x = expression;
if isequal(x,value_1)
block_1
elseif isequal(x,value_2)
block_2
else
block_3
end- 所以与 if, else, elseif 语句类似, otherwise 语句可选, 有的话条件完备
- case 语句可以任意多, 且都同级互斥
- 但这里要求 expression 的返回值只能是 scalar 或 char vector, 与 if, else, elseif 中条件表达式可以是任意数组不同
- 特别的, value_i 可为 cell array, 此时执行 block_i 若存在 value_i 中 cell 与 expression 相等