matlab 条件语句及循环语句

  • 您可以嵌套任意数量的 if 语句。每个 if 语句需要一个 end 关键字。

  • 避免在 elseif 关键字 (else if) 内于 else 之后添加空格。空格会创建嵌套的 if 语句,该语句要求独立的 end 关键字。

 

使用 isequal 而不是 == 运算符比较数组来测试相等性,因为当数组的大小不同时 == 会导致错误。

 

if isequal(size(A),

size(B)) C = [A; B];

else

disp('A and B are not the same size.')        输出语句

C = [];

end

 

  • 如果意外创建了一个无限循环(即永远不会自行结束的循环),请按下 Ctrl+C 停止执行循环。

  • 如果条件表达式的计算结果是一个矩阵,则仅当该矩阵中的所有元素都为 true(非零)时,MATLAB 才会计算这些语句。要在任何元素为 true 时执行语句,请在 any 函数中对表达式换行。

  • 要以编程方式退出循环,请使用 break 语句。要跳过循环中的其余指令,并开始下一次迭代,请使用 continue 语句。

  • 嵌套许多 while 语句时,每个 while 语句都需要一个 end 关键字。

 

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

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

 

n = input('Enter a number: ');

switch n
    case -1
        disp('negative one')
    case 0
        disp('zero')
    case 1
        disp('positive one')
    otherwise
        disp('other value')
end

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

positive one

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

other value

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

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

    result = 52;

    • 在该 case 内定义特定 case 中的代码所需要的变量。由于 MATLAB 仅执行任何 switch 语句的一个 case,因此一个 case 内定义的变量不适用于其他 case。例如,如果当前工作区不包含变量 x,则仅定义 x 的情况可以使用它:

      switch choice
         case 1
            x = -pi:0.01:pi;
         case 2
            % does not know anything about x
      end
    • 不要在 switch 块内使用 break 语句。break 不是在 forwhile 循环之外定义的。

posted @ 2019-07-11 10:37  吴伟源  阅读(1249)  评论(0编辑  收藏  举报