MATLAB switch的用法(附带实例)
在 MATLAB 中,switch分支结构适用于条件多且比较单一的情况,类似于一个具有多个开关的数控系统。其一般的语法格式如下:

图 1 switch分支结构流程图
switch 后面的表达式可以为任何类型,如算术表达式、字符串表达式等。当表达式的值与 case 后面常量表达式的值相等时,就执行这个 case 后面的语句组,如果所有的常量表达式的值都与这个表达式的值不相等,则执行 otherwise 后的语句组。
常量表达式的值可以重复,在语法上并不算错误,但是在执行时,后面符合条件的 case 语句将被忽略。各个 case 和 otherwise 语句的顺序可以互换。
【实例】输入一个数,判断它能否被 5 整除。在编辑器中创建一个名为 switchding.m 的 M 文件,其内容如下:
在 switch 分支结构中,case 后的常量表达式不仅可以为一个标量或者字符串,还可以为一个数组。如果常量表达式是一个数组,MATLAB 将把表达式的值和该数组中的所有元素进行比较;如果数组中某个元素和表达式的值相等,则执行这个 case 后面的语句组。
switch 表达式 case 常量表达式 1 语句组 1 case 常量表达式 2 语句组 2 ... otherwise 语句组 n endswitch 分支结构流程如下图所示:

图 1 switch分支结构流程图
switch 后面的表达式可以为任何类型,如算术表达式、字符串表达式等。当表达式的值与 case 后面常量表达式的值相等时,就执行这个 case 后面的语句组,如果所有的常量表达式的值都与这个表达式的值不相等,则执行 otherwise 后的语句组。
常量表达式的值可以重复,在语法上并不算错误,但是在执行时,后面符合条件的 case 语句将被忽略。各个 case 和 otherwise 语句的顺序可以互换。
【实例】输入一个数,判断它能否被 5 整除。在编辑器中创建一个名为 switchding.m 的 M 文件,其内容如下:
clear n=input('输入n='); % 输入 n 值 switch mod(n,5) % mod 是求余函数,余数为 0,得 0,余数不为 0,得 1 case 0 fprintf ('% d 是 5 的倍数',n) otherwise fprintf('输入值% d 不是 5 的倍数。',n) end执行程序,在命令行窗口中提示符下依次输入:
>> switchding
输入 n=16 % 输入 16
输入值 16 不是 5 的倍数。
在 switch 分支结构中,case 后的常量表达式不仅可以为一个标量或者字符串,还可以为一个数组。如果常量表达式是一个数组,MATLAB 将把表达式的值和该数组中的所有元素进行比较;如果数组中某个元素和表达式的值相等,则执行这个 case 后面的语句组。