Day12_0.1基础学习MATLAB学习小技巧总结(12)——程序流程控制3-switch结构
利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
素材来源“数学建模清风”
特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。
原素材和学习视频地址:MATLAB教程新手入门篇(上部分)(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili
补:switch结构
除了选择使用 if、elseif和 else 命令之外,用户还可以使用 switch 结构。使用 switch结构编写的任何程序也都可以使用f结构进行编写。但是,对于一些应用来说,用switch结构编写的代码可读性比使用f结构编写的代码可读性要好。switch结构的语法是:
switch 输入表达式(标量或字符串)
case 值1
语句组 1
case 值2
语句组 2
.
.
.
otherwise
语句组n
end
在 MATLAB 中,输入的表达式会与每个 case 值进行比较。如果它们相等,则执行紧随 case 语句之后的指令,然后程序继续执行 end 语句之后的任何指令。如果输入表达式是字符串类型,且 strcmp 函数返回 1(即 true),则表示它与 case 值相等。程序只会执行第一个匹配的 case。如果没有任何 case 匹配,程序将仅执行 otherwise 语句之后的指令。需要注意的是,otherwise 语句是可选的,如果没有提供该语句,程序将在没有匹配的情况下继续执行 end 语句之后的指令。每个 case 值必须单独占据一行。
例如,假设变量 angle 存储一个整数值,该值表示从正北方向开始测量的角度(单位为度)。以下的 switch 结构展示了与某个角度对应的指南针方向。
switch angle
case 45
disp('Northeast')
case 135
disp('Southeast')
case 225
disp('Southwest’)
case 315
disp('Northwest')
otherwise
disp('Direction Unknown')
end
使用字符串变量作为输入表达式通常可以提高程序的可读性。
例如,在以下代码中,数值向量 x 已被赋值,而用户输入的字符串变量 response 的值可以是 min、max 或 sum。接着,代码会根据用户的输入计算出 x 中的最大值、最小值或所有元素的总和。
t=[0:100]; x= exp(-t).*sin(t);
response = input('Type min, max, or sum.','s’)
response = lower('response’);
switch response
case min
minimum = min(x)
case maX
maximum = max(x)
case sum
total = sum(x)
otherwise
disp("You have not entered a proper choice.’)
end
通过将 case 值放入一个单元数组中,switch语句就可以在一条 case 语句中处理多个条件。
例如,以下 switch 结构显示了指南针上那些对于固定从北方开始测量的整数角度的对应点。
switch angle
case {0,360}
disp('North’)
case {-180,180}
disp('South’)
case {-270,90}
disp('East')
case {-90,270}
disp("West')
otherwise
disp(Direction Unknown')
end