《MATLAB/Simulink系统仿真超级学习手册》——2.4 MATLAB的程序流程控制

简介:

本节书摘来自异步社区《MATLAB/Simulink系统仿真超级学习手册》一书中的第2章,第2.4节,作者:MATLAB技术联盟 , 石良臣著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 MATLAB的程序流程控制

MATLAB/Simulink系统仿真超级学习手册
作为一种程序设计语言,MATLAB同一般高级程序语言一样,为用户提供了丰富的程序结构语言来实现用户对程序流程的控制。

MATLAB的程序路程控制主要包括循环控制和条件选择控制。

2.4.1 循环控制结构
1.for循环结构

for循环结构的格式为

  for 循环变量=向量表达式
    循环体语句组
  end

该循环结构的执行方式为:从向量表达式的第一列开始,依次将向量表达式各列的值赋值给循环变量,然后执行循环体语句组中的命令,直到最后一列。

通常使用的for循环格式为

for i = s : h : e

即用冒号表达式进行等步长向量的创建。

注意:循环语句组必须是一组合法的MATALB命令;end不可省略。

screenshot

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> sum=0;
>> for i=1:1:50
sum=sum+i;
end
>> sum

运行结果如下:

sum =
      1275

注意:可将for i = 1:1:50写成for i = 1:50,因为系统默认步长为1,所以可以省略中间的“:1”。for循环语句可以实现多重循环,但for与end必须成对出现。

2.while循环结构
while循环结构的基本格式为

while关系表达式
    循环体语句组
  end

该循环结构的执行方式为:

(1)判断关系表达式是否为真,若为真,则执行(2),否则执行(3);

(2)执行循环体语句组中的命令,再返回至(1);

(3)执行end语句,即循环结束。

screenshot

在MATLAB命令窗口中输入下面语句并按回车键确认。

>> sum=0;
>> i=1;
>> while i<=50
sum=sum+i;
i=i+1;
end
>> sum

运行结果如下:

sum =
     1275

计算结果与例2-13一致。

条件选择结构
1.if条件选择结构
条件选择结构中最基本的是if条件选择结构语句。if条件选择结构有3种基本格式:

(1) if 条件表达式

    `javascript
条件语句组
    end

(2) if 条件表达式

条件块语句组 1
    else
      条件块语句组 2
    end

(3) if 条件表达式 1

条件块语句组 1
    elseif 条件表达式 2
      条件块语句组 2
    …
    elseif条件表达式 n-1
      条件块语句组 n-1
    else
      条件块语句组 n
    end

注意:

(1)else子句不能单独使用,必须与if配对使用;

(2)if条件选择结构可以嵌套使用

【例2-15】学生成绩分类:90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E,要求输入一个分数输出其对应等级。

在MATLAB命令窗口中输入下面语句并按回车键确认。

grade=input('Please enter a grade:');
if grade>=90

  degree='A';
elseif (grade>=80)&&(grade<=89)
  degree='B';
elseif (grade>=70)&&(grade<=79)
  degree='C';
elseif (grade>=60)&&(grade<=69)
  degree='D';
else
  degree='E';
end
disp(['The degree is ',degree])

MATLAB命令窗口中显示Please enter a grade,要求输入成绩,输入76并按回车键确认,得到结果The degree is C,该成绩等级为C。

2.switch条件选择结构
switch条件选择结构用于多分支选择,其基本格式为:

switch(表达式)
    case 常量表达式1

语句组1

case 常量表达式2

语句组2

    case 常量表达式n

语句组n

otherwise:

语句组 n+1

end

【例2-16】学生成绩分类:90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E,要求输入一个等级输出其对应分数。

在MATLAB命令窗口中输入下面语句并按回车键确认。

degree=input('Enter a degree:');

switch degree
  case 'A'
    disp('The grade is 90-100.');
  case 'B'
    disp('The grade is 80-89.');
  case 'C'
    disp('The grade is 70-79.')
  case 'D'
    disp('The grade is 60-69.')
  case 'E'
    disp('The grade is 0-59.')
  otherwise
    disp('There is no this degree.')
end

相关文章
|
1天前
|
存储
基于遗传算法的智能天线最佳阵列因子计算matlab仿真
本课题探讨基于遗传算法优化智能天线阵列因子,以提升无线通信系统性能,包括信号质量、干扰抑制及定位精度。通过MATLAB2022a实现的核心程序,展示了遗传算法在寻找最优阵列因子上的应用,显著改善了天线接收功率。
基于毕奥-萨伐尔定律的交流电机的4极旋转磁场matlab模拟与仿真
本课题基于毕奥-萨伐尔定律研究交流电机的4极旋转磁场,对比不同定子半径和2极旋转磁场。通过MATLAB2022a进行仿真,核心程序计算每个导线对空间点的磁场贡献,并绘制磁场分布。毕奥-萨伐尔定律描述了电流元产生的磁场分布,对于理解交流电机中旋转磁场的形成至关重要。
|
6天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了基于分组卷积神经网络(GroupCNN)和灰狼优化(GWO)的时间序列回归预测算法。算法运行效果良好,无水印展示。使用Matlab2022a开发,提供完整代码及详细中文注释。GroupCNN通过分组卷积减少计算成本,GWO则优化超参数,提高预测性能。项目包含操作步骤视频,方便用户快速上手。
|
8天前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。
|
8天前
|
固态存储
螺旋卫星通信天线设计与有限元分析matlab仿真
本课题研究了尺寸为10cm*10cm*30cm的卫星上搭载的螺旋型天线,工作于UHF频段(1-3GHz)。通过MATLAB2022a进行系统仿真,展示了天线的辐射特性。螺旋天线因其低轴比、宽带宽和紧凑结构而适用于卫星通信。采用有限元法分析天线的电磁性能,计算了天线的关键性能指标,包括S参数、增益、轴比等。
|
8天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了一种基于WOA优化的GroupCNN分组卷积网络时间序列预测算法。使用Matlab2022a开发,提供无水印运行效果预览及核心代码(含中文注释)。算法通过WOA优化网络结构与超参数,结合分组卷积技术,有效提升预测精度与效率。分组卷积减少了计算成本,而WOA则模拟鲸鱼捕食行为进行优化,适用于多种连续优化问题。
|
9天前
|
机器学习/深度学习 算法 5G
基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
本文介绍了基于Matlab 2022a的几种信道估计算法仿真,包括LS、OMP、NOMP、CoSaMP及改进的BP神经网络CoSaMP算法。各算法针对毫米波MIMO信道进行了性能评估,通过对比不同信噪比下的均方误差(MSE),展示了各自的优势与局限性。其中,BP神经网络改进的CoSaMP算法在低信噪比条件下表现尤为突出,能够有效提高信道估计精度。
22 2
|
1天前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
32 0
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
6天前
|
算法 决策智能
基于GA-PSO遗传粒子群混合优化算法的TSP问题求解matlab仿真
本文介绍了基于GA-PSO遗传粒子群混合优化算法解决旅行商问题(TSP)的方法。TSP旨在寻找访问一系列城市并返回起点的最短路径,属于NP难问题。文中详细阐述了遗传算法(GA)和粒子群优化算法(PSO)的基本原理及其在TSP中的应用,展示了如何通过编码、选择、交叉、变异及速度和位置更新等操作优化路径。算法在MATLAB2022a上实现,实验结果表明该方法能有效提高求解效率和解的质量。

热门文章

最新文章