首页 > 编程语言 >matlab结构化程序设计流程结构

matlab结构化程序设计流程结构

时间:2023-06-05 12:33:21浏览次数:41  
标签:语句 case end 流程 结构化程序 循环 matlab 执行 表达式

一、条件转移结构

基本形式:

f 条件表达式

  语句段

end

执行流程:若表达式条件成立,执行语句段,否则跳过语句段的执行。

若需要多条件转移,一般是三个或以下:

if 条件表达式1

  语句段1

elseif 条件表达式2

  语句段2

else 

  语句段3

end

注意事项:if或else中的语句无需{}包围

       一组if语句必须以end结尾

 1 function y = ifSam()
 2     x = input('please input x:');
 3     y = 0; 
 4     if x < 0
 5         y = -1;
 6     elseif x == 0
 7         y = 0; 
 8     else 
 9         y = 1; 
10     end 

也可以直接输入上述语句执行,为了方便,我封装成了函数而已,以下也都一个做法。

二、开关结构,多分支结构,通常多过3个

基本形式:

switch 开关表达式

  case 表达式1

    语句段1

  case 表达式2

    语句段2

      …

  case 表达式n

    语句段n

  oterwise

    语句段n+1

  end

执行流程:根据开关表达式的结果,与接下来的一系列case后的表达式1...n比较,任一条件满足,则执行对应的语句段;若没有符合的表达式,则执行otherwise下的语句段n+1

注意事项:开关表达式只能是标量或字符串

     case中的语句段后不需要break,执行完自动退出,若多个case的语句段一样,可以用{}将借个表达式包括,用逗号隔开即可

     otherwise中的语句段是case所有语句段的保险语句,不能省略。切记,不要混用成c语言中的default了

 1 function switchSam()
 2     g = input('please input grade: ', 's');
 3     
 4     switch (g)
 5         case{'a', 'A'}
 6             disp('85~100');
 7         case{'b', 'B'}
 8             disp('70~84');
 9         case{'c', 'C'}
10             disp('60~69');
11         case{'d', 'D'}
12             disp('< 60');
13         otherwise
14             disp('input error!')
15     end 

三、循环结构for和while,前者用于提前已知循环的次数的循环结构,后者通常用于无法提前预知循环的次数的循环结构中

基本形式:

for 循环变量 = v  %v通常为行向量        while 条件表达式

  语句段                    语句段

end                      end

执行流程:for循环执行时,每次从v中取一个数值,执行一次语句段;

     再次从v中取一个数值,并再次执行语句段;

     直到v中的数据全部被取完为止。for循环停止执行

     while循环执行,先行判断条件表达式是否成立;

     若成立,则执行语句段,除非是需要死循环,否则,语句段中一定会包含让条件表达式变化的语句;

     再次判断while后的条件表达式,若成立,则像上一步一样继续执行;

     直至到while后面的表达式不成立,则跳出循环,结束循环。

注意事项:绝大多数的循环都可以同时用for和while实现,根据需要自己选择

     无论是for还是while中都可以加入break和continue语句,前者是退出整个循环,continue则是退出当次的循环

1 function resul = forSam(init, n)
2     for i = 1 : n
3         resul = init^2 - 1;
4         init = resul;
5     end 
1 function resul = whileSam(init, n)
2     while n > 0 
3         resul = init^2 - 1;
4         %init = resul;                            %每次不输出init>的结果        
5         init = resul                                %每次输出中间结>果        
6         n = n - 1;
7     end  

这两种循环都是可以的,开心就好,随意选择。

四、试探结构

基本形式:

try

  语句段1

catch

  语句段2

end

执行流程:先行执行语句段1,若没有出现错误,跳过语句段2;

     执行语句段1出现错误,执行语句段2

注意事项:提供了一种错误的捕获机制

 1 function trySam()                                                           
 2     var1 = rand(3, 4);
 3     var2 = magic(5);
 4     try
 5         var1 * var2;
 6         disp(var1 * var2);
 7     catch
 8         disp(var1);
 9         disp(var2);
10     end

代码第5行是将矩阵相乘,但是var1和var2不满足相乘条件,但是依旧吧第8 9行执行了

标签:语句,case,end,流程,结构化程序,循环,matlab,执行,表达式
From: https://www.cnblogs.com/guochaoxxl/p/17457482.html

相关文章

  • PMP - 针对考试的重点流程
    30岁之后还敲代码吗?我不想敲代码啦,先考个PMP吧!也不知道自己合不合适!咱国内就没有35岁以上的女程序员吧!其实大概在2017到2018年期间,我也做个半年多的项目经理。说起那段经历,毕业刚一年,刚刚入行前端,刚刚才独立完成一个小项目。最让感觉到压力的事情,是在跟客户的时候,我就特别......
  • GEE代码备份流程记录
    GEE代码备份流程记录这篇文章参考是穆老师的文章:GEE代码批量保存至本地(中秋快乐版)打开源码网址,将下面的YourUsername换成自己的用户名。https://earthengine.googlesource.com/users/YourUsername/或者通过下面的方法查看该网址:打开代码库分享设置,Gitclone后面的网址就是。......
  • 流程控制
    if语句if语句用于条件判断,满足条件时,就执行指定的语句。if(expression)statement上面式子中,表达式expression为真(值不为0)时,就执行statement语句。if后面的判断条件expression外面必须有圆括号,否则会报错。语句体部分statement可以是一个语句,也可以是放在大括号里面的复合语句。......
  • m基于ENM-LAP模型的自组织网络平均最短路径长度matlab仿真分析
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要移动自组织网络不但具有终端能量受限、无线信道状况受链路距离影响等特点,还具有节点位置的选择存在偏好的规律。本节建立基于节点位置偏好的网络拓扑演进模型,并利用复杂网络理论对其进行分析。网络拓扑结构产生过......
  • m基于节点位置偏好的自组织网络节点度分布的matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要​移动自组织(AdHoc)网络是一种多跳的临时性自治系统,它的原型是美国早在1968年建立的ALOHA网络和之后于1973提出的PR(PacketRadio)网络。ALOHA网络需要固定的基站,网络中的每一个节点都必须和其它所有节点直接连......
  • 第三章 流程控制语句
    1.顺序结构‍顺序结构就是程序从上到下​运行的,表达式语句都是顺序执行的。并且上一行对某个变量的修改对下一行会产生影响​​2.分支语句2.1if-else条件判断结构基本语法:结构1:单分支条件判断:if​格式:​if(条件表达式){语句块;}​说明:​条件表达式必须......
  • m基于节点位置偏好的自组织网络节点度分布的matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要​      移动自组织(AdHoc)网络是一种多跳的临时性自治系统,它的原型是美国早在1968年建立的ALOHA网络和之后于1973提出的PR(PacketRadio)网络。ALOHA网络需要固定的基站,网络中的每一......
  • 面试官:我们简单聊一下SpringBoot的启动流程吧。
    SpringBoot启动原理每次看到这个问题总是不能理出一条线来回答流畅,这次理出一条八股文标准答案出来。复习的时候拿出来过一过思路。如果有不合适的地方希望各位大佬指教~[源码基于springboot2.4.3]框架启动类每个SpringBoot项目都有一个标注着@SpringBootApplication注解的main启动......
  • 从日志记一次Spring事务完整流程
    spring事务一次完整流程,创建》确认获取连接》完成》提交》释放链接DataSourceTransactionManager//Step1.进入业务方法前,依据事物切面创建事务对象2019-07-0622:34:24,819[main]DEBUGo.s.j.d.DataSourceTransactionManager-Creatingnewtransactionwithname[com......
  • 【滤波跟踪】基于matlab实现GPS+IMU数据融合
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......