欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Day12_0.1基础学习MATLAB学习小技巧总结(12)——程序流程控制3-switch结构

Day12_0.1基础学习MATLAB学习小技巧总结(12)——程序流程控制3-switch结构

2024/10/24 18:20:56 来源:https://blog.csdn.net/qq_47248729/article/details/141792317  浏览:    关键词: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语句组 1case 值2语句组 2
.
.
.otherwise语句组n
end

在 MATLAB 中,输入的表达式会与每个 case 值进行比较。如果它们相等,则执行紧随 case 语句之后的指令,然后程序继续执行 end 语句之后的任何指令。如果输入表达式是字符串类型,且 strcmp 函数返回 1(即 true),则表示它与 case 值相等。程序只会执行第一个匹配的 case。如果没有任何 case 匹配,程序将仅执行 otherwise 语句之后的指令。需要注意的是,otherwise 语句是可选的,如果没有提供该语句,程序将在没有匹配的情况下继续执行 end 语句之后的指令。每个 case 值必须单独占据一行。

例如,假设变量 angle 存储一个整数值,该值表示从正北方向开始测量的角度(单位为度)。以下的 switch 结构展示了与某个角度对应的指南针方向。

switch anglecase 45disp('Northeast')case 135disp('Southeast')case 225disp('Southwest’)case 315disp('Northwest')otherwisedisp('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 responsecase minminimum = min(x)case maXmaximum = max(x)case sumtotal = sum(x)otherwisedisp("You have not entered a proper choice.’)
end

通过将 case 值放入一个单元数组中,switch语句就可以在一条 case 语句中处理多个条件。

例如,以下 switch 结构显示了指南针上那些对于固定从北方开始测量的整数角度的对应点。

switch anglecase {0,360}disp('North’)case {-180,180}disp('South’)case {-270,90}disp('East')case {-90,270}disp("West')otherwisedisp(Direction Unknown')
end

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com