小言_互联网的博客

Matlab中switch, case, otherwise语句

229人阅读  评论(0)

目录

一.语法

二.说明

三.示例

1.比较单个值

2.与多个值进行比较


switch, case, otherwise语句是执行多组语句中的一组。

一.语法


  
  1. switch switch_expression
  2. case case_expression
  3. statements
  4. case case_expression
  5. statements
  6. ...
  7. otherwise
  8. statements
  9. end

提示

  • case_expression 不能包含关系运算符(例如 < 或 >)来与 switch_expression 进行比较。要测试不相等性,使用if,elseif,else语句。

  • MATLAB switch 语句不会像C语言的switch语句一样失效。如果第一个case语句为true,则 MATLAB 不会执行其他case语句。例如:

  
  1. result = 52;
  2. switch(result)
  3. case 52
  4. disp( 'result is 52')
  5. case { 52, 78}
  6. disp( 'result is 52 or 78')
  7. end
  8. result is 52
  • 在该 case 内定义特定 case 中的代码所需要的变量。由于 MATLAB 仅执行任何 switch 语句的一个 case,因此一个 case 内定义的变量不适用于其他 case。例如,如果当前工作区不包含变量 x,则仅定义 x 的情况可以使用它:


  
  1. switch choice
  2. case 1
  3. x = -pi: 0.01:pi;
  4. case 2
  5. % does not know anything about x
  6. end
  • MATLAB  break 语句会结束forwhile循环的执行,但不结束 switch 语句的执行。此行为不同于 C 语言中 break 和 switch 的行为。

二.说明

switch switch_expression, case case_expression, end 计算表达式并选择执行多组语句中的一组。每个选项为一个 case。

switch 块会测试每个 case,直至一个 case 表达式为 true。case 在以下情况下为 true:

  • 对于数字,case_expression == switch_expression

  • 对于字符向量,strcmp(case_expression,switch_expression) == 1

  • 对于支持 eq 函数的对象,case_expression == switch_expression。重载的eq函数的输出必须为逻辑值或可转换为逻辑值。

  • 对于元胞数组 case_expression,元胞数组的至少一个元素与 switch_expression 匹配,如上述对数字、字符向量和对象的定义。

当 case 表达式为 true 时,MATLAB® 执行对应的语句,然后退出switch块。

计算的switch_expression必须为标量或字符向量。计算的case_expression必须为标量、字符向量或者标量或字符向量的元胞数组。

otherwise块是可选的。仅当没有 case 为 true 时,MATLAB 才会执行这些语句。

三.示例

1.比较单个值

根据在命令提示符下输入的值有条件地显示不同的文本。


  
  1. n = input( 'Enter a number: ');
  2. switch n
  3. case -1
  4. disp( 'negative one')
  5. case 0
  6. disp( 'zero')
  7. case 1
  8. disp( 'positive one')
  9. otherwise
  10. disp('other value')
  11. end

在命令提示符下,输入数字 1。

positive one

重复执行该代码并输入数字 3。

other value

2.与多个值进行比较

基于 plottype 的值确定要创建哪种类型的绘图。如果 plottype 为 'pie' 或 'pie3',则创建一个三维饼图。使用元胞数组包含两个值。


  
  1. x = [ 12 64 24];
  2. plottype = 'pie3';
  3. switch plottype
  4. case 'bar'
  5. bar(x)
  6. title( 'Bar Graph')
  7. case { 'pie', 'pie3'}
  8. pie3(x)
  9. title( 'Pie Chart')
  10. otherwise
  11. warning('Unexpected plot type. No plot created.')
  12. end

 


转载:https://blog.csdn.net/jk_101/article/details/110840137
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场