0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MATLAB课程之第三章v3 M文件知识(3)

通信工程师专辑 来源:未知 2023-11-26 10:05 次阅读

上堂课讲到了控制结构!

程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序、选择、循环这三种基本控制结构构造出来。每种结构仅有一个入口和出口。由这3种基本结构组成的多层嵌套程序称为结构化程序。百度百科解释的很棒!相信大家在C语言里面已经了解了这些知识,那就在MATLAB中再来一遍吧。再来学习另外一种开关结构!

wKgaomViqPqAcp-KAAJUNL3qLz8746.png

switch 语句用的场合不如 if 语句多!

注意:开关结构运行时,MATLAB 将开关表达式的值依次和各个 case 后面的表达式进行比较,如果是“逻辑真”,将执行相应的语句,如果是“逻辑假”,则取下一case 后面的表达式进行比较。如果所有 case 后面的语句均与开关表达式的值不相等,则执行 otherwise 后面的指令语句组。还有请大家注意这个语法和C的差异!

开关表达式的形式有两种:一种是标量;另外一种是字符串。对于字符串形式,MATLAB 在比较时将调用函数 strcmp( ),得出字符串比较的逻辑输出值,MATLAB 根据该逻辑值的真假来判断是否执行该 case 后面的语句。

wKgaomViqPqAFvB_AAAJohSBdXM865.gif

什么是流程?

流程简单的解释就是指事物进行中的次序或顺序的布置和安排。我们做的很多事情都有一个流程。比如你要到京东买东西就要先登录账号,然后购物,然后提交,再然后进行付费。再比如华为公司使用的BPM。这是一个流程管理软件,先处理什么事情,再处理什么事情,涉及顺序,管理思想等。只有到了一定规模的公司,你才能接触到这个概念。我们先从软件编程的角度出发来理解流程控制内容吧。那什么是流程图呢?学过C语言的同学肯定知道。复杂的编程一定要先画流程图!

wKgaomViqPqAFvB_AAAJohSBdXM865.gif

做个例题吧。

例四:switch-case开关结构实例。

通过键盘输入百分制成绩,输出成绩的等级,其中90~100分等级为A,80~89分等级为B,70~79分等级为C,60~69分等级为D,60分以下不及格。

wKgaomViqPqAF49XAAKParI2Q5E531.png

正确吗?

如果不正确,应该如何改呢?

先思考一下!

wKgaomViqPqAUGCSAAIUuef0d1E408.png

wKgaomViqPuAPnphAAH9izDniPs490.png

注意!

试探结构首先试探性的执行指令语句组 1,如果在此语句组执行过程中出现错误,则将错误信息给保留的 lasterr 变量,并放弃这组语句,转而执行语句组 2 中的语句。

若语句 2 执行过程中又出现错误,则 MATLAB 终止该结构。

wKgaomViqPuAPGVMAAJkyf3QcKc620.png

什么是魔方矩阵?

考试时候也许会遇到哦!

如何生成呢?magic函数可以来帮忙!魔方矩阵是指具有相同的行数和列数,并且在每行每列、对角线上的和都相等的矩阵。魔方矩阵中的每个元素不能相同。你能构造出任何大小(除了2x2)的魔方矩阵。

wKgaomViqPuAMTIaAAFU8OhlQhc504.png

这个结构用的少!

而下面的结构几乎无处不在!

wKgaomViqPuAOnaeAAH-CO0XHZ0375.png

注意!

”表达式“可以是 MATLAB 指令产生的数组,也可以是任意给定的一个数组。循环变量从”表达式“中的第一个数值(或第一列数组)一直循环到”表达式“的最后一个数值(或最后一列数组)。

wKgaomViqPyASPvXAAFZUaqjEmc712.png

wKgaomViqPyAVJ7fAAC7kQ0B3cI772.png

wKgaomViqPyAUVvYAAJAA1nPaNA450.png

注意!

执行时,只要逻辑表达式为”逻辑真“(非 0),就执行指令语句组,执行后再返回到 while 引导的逻辑表达式处,继续判断;如果逻辑表达式为”逻辑假“,则跳出循环。

通常,逻辑表达式的值为一个标量,但数组也同样有效。

wKgaomViqPqAFvB_AAAJohSBdXM865.gif

示例讲解!

例七:运用 while……end循环结构实现:从键盘输入若干个数,当输入数字为零时,结束输入。求这些数字的平均值以及它们的和。

wKgaomViqPyANmmqAAJxVH4nuKQ333.png

wKgaomViqPyACDpOAAHhWJ31eso172.png

wKgaomViqP2AGMVDAAEr8o8u1aM800.png

如果你熟悉C语言的语法知识,那么掌握这些就易如反掌!如果忘记了,可以通过互联网来回顾!如果没有学过C语言,那么就需要在MATLAB相关书籍中学习相关内容。继续通过示例来了解这两个语句的用法吧。

wKgaomViqP2AAR0nAAE88MaKIZY331.png

知识点!

wKgaomViqP2AHoUEAAF2K3nCbms365.png

wKgaomViqPqAFvB_AAAJohSBdXM865.gif

语言比较!

学到这里请同学们再次回顾一下,C语言中如何使用if选择语句和for循环语句的啊?有什么差别呢?大家觉得哪个语言用起来方便呢?这两种语言各有各的应用场合。对于电子通信类专业,以后在工作中都要用到。建议比较学习,有益于大家编程能力的提高!课后建议大家多编程练习,这样考试的时候就稳如泰山了。

wKgaomViqPqAFvB_AAAJohSBdXM865.gif

视频课程来了!回顾加总结!

我会在本公众号里面推出原创系列文章《MTALAB和信号与系统》、《MTALAB与滤波器》、《捕获跟踪算法的matlab》、仿真《MTALAB与锁相环》、《MTALAB与位同步》、《MTALAB与误码率》、《MTALAB与卫星通信》、《MTALAB与卫星导航信号处理》。先推出《MTALAB与误码率》,毕竟我是通信工程专业的老师,优先照顾一下本专业的学子们。然后再推出《MTALAB与滤波器》,帮助电子类专业的学生。不过学这些课程之前,同学们必须先把MATLAB学好。万丈高楼平地起。否则等到自己到了要用的时候再去学,就有点晚了。2019年,在仿真秀APP开讲了!

wKgaomViqP2ALQvmAAChCA_YtJQ657.jpg

wKgaomViqP2ATzv3AAE80VCVY2w458.png

传播知识会不遗余力!2023年,在仿真秀网站上已有超过一千小时的课程!2023年的MATLAB讲课视频会在2024年上传!教的时间越长,讲课的质量会逐年提升!暑假期间,很多同学在准备考研,特地录制了一个视频,让大家在复习的时候能够将很多知识点串联起来。

最后一起来回顾一下课堂上的讲解内容吧!

未完,待续!

wKgaomViqP6ASVFLAAAgWrkkT7Y601.gif

修订记录

20191128 完成初稿;

20220120 修订内容;

20230801 修订内容v2;

20231126修订内容v3;


原文标题:MATLAB课程之第三章v3 M文件知识(3)

文章出处:【微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信网络
    +关注

    关注

    20

    文章

    1993

    浏览量

    51552

原文标题:MATLAB课程之第三章v3 M文件知识(3)

文章出处:【微信号:gh_30373fc74387,微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MATLAB课程之第五章v3 文件操作(3)

    继续讲解! 视频文件一般都很大! 处理起来很耗内存! 大家用过剪影这个软件 吗? 这种 软件必然 包含了大量的视频文件函数 !那我们就先在MATLAB中去感受类似函数的作用吧。 读取文件
    的头像 发表于 12-10 08:20 244次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b>第五章<b class='flag-5'>v3</b> <b class='flag-5'>文件</b>操作(3)

    MATLAB课程之第五章v3 文件操作(2)

    后,真的希望在医学方面能有所贡献!所以,现在就积累!扩展一下知识面吧! MATLAB的图像处理工具箱(image processing toolbox)自带了读取医学图像DICOM文件的函数dicomread、dicominfo
    的头像 发表于 12-08 12:25 251次阅读

    MATLAB课程之第三章v3 M文件知识(5)

    函数的有关知识。下面的内容也可以让大家了解一下行业的应用,之前讲过MATLAB可以在哪些行业使用,通过这些函数的了解也能让大家体会到MATLAB在行业中会起到的作用。我本人已经在生物信号处理和智能家居、数据统计方面做出了很多实际
    的头像 发表于 11-28 08:10 211次阅读

    MATLAB课程之第三章v3 M文件知识(2)

    ,都没有在自己的电脑上装上MATLAB软件。为什么会这样?非得要老师逼迫你才学?晕倒!!! 这就是我的亲生教学经历,好在这些经历已经过去了好几年,不再彷徨了。 现在情况如何呢?教学C语言的时候也遇到了类似情况,感觉学生在为
    的头像 发表于 11-25 07:10 248次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b><b class='flag-5'>第三章</b><b class='flag-5'>v3</b> M<b class='flag-5'>文件</b><b class='flag-5'>知识</b>(2)

    MATLAB课程之第二章v3 MATLAB绘图功能(1)

    内容是高中数学所涉及的知识,希望同学们能在matlab中熟练使用。考试中会涉及这些知识点哦,还不记住用法吗?之前在课堂上演示了画图的基本函数plot,现在我们就一起来学习第二章的知识
    的头像 发表于 11-12 16:00 270次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b>第二章<b class='flag-5'>v3</b> <b class='flag-5'>MATLAB</b>绘图功能(1)

    MATLAB课程之第一章v3 MATLAB基础知识(5)

    吧!为什么会用这个例题来作为讲解案例呢?因为它会涉及到我们专业未来的专业课程,也结合考虑到大家现有知识的储备情况,学过物理和数学就能理解。同时借助例题展现了一下MATLAB语言和C语言之间的画图差异。所以这个例题在这里展示是恰
    的头像 发表于 10-17 15:50 235次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b>第一章<b class='flag-5'>v3</b> <b class='flag-5'>MATLAB</b>基础<b class='flag-5'>知识</b>(5)

    MATLAB课程之第一章v3 MATLAB基础知识(4)

    继续给出课程的PPT,帮助同学们消化!也帮助同学们复习! 为什么第一章要分四次课来讲呢?大一的学生刚开始接触编程的时候,我需要耐心培养他们编程的好习惯。知识点需要很细致的讲,自然也就需要慢慢讲解
    的头像 发表于 10-16 20:15 248次阅读

    MATLAB课程之绪论v3(2)

    。最和课程相关的是计算机编程语言的发展过程,也就是计算机语言的历史!汇编语言的使用让人感到编程的痛苦。后来“高级语言”出现了,C语言就是“高级语言”中的典型代表,当然还有其他的比如FORTRAN、C++、JAVA、R、MATLAB、Python等等。
    的头像 发表于 10-10 16:00 242次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b>绪论<b class='flag-5'>v3</b>(2)

    MATLAB课程之第三章v2 M文件知识(5)

    函数的有关知识。下面的内容也可以让大家了解一下行业的应用,之前讲过MATLAB可以在哪些行业使用,通过这些函数的了解也能让大家体会到MATLAB在行业中会起到的作用。我本人已经在生物信号处理和智能家居、数据统计方面做出了很多实际
    的头像 发表于 08-09 08:05 258次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b><b class='flag-5'>第三章</b>v2 M<b class='flag-5'>文件</b><b class='flag-5'>知识</b>(5)

    MATLAB课程之第三章v2 M文件知识(4)

    上堂课讲了一个示例程序! 让大家帮忙找错! 相信大家都能发现问题所在!找错的过程特别能提高编程水平。 看一下老师给出的结果! 完整代码! n = input('请输入百分制成绩n = ?'); if n0||n100     disp('输出有误,请重新输入百分制成绩') else     t = fix(n/10); %fix()为截断取整函数     switch t         case{9,10}             disp('A')         case 8             disp('B')         case 7             disp('c')         case 6             disp('及格')         otherwise
    的头像 发表于 08-08 08:15 253次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b><b class='flag-5'>第三章</b>v2 M<b class='flag-5'>文件</b><b class='flag-5'>知识</b>(4)

    MATLAB课程之第三章v2 M文件知识(2)

    很多大一的新生依旧保持高中时期学习的风格,需要老师盯着才学。这在大学里面是不可能发生的事情。 于是,很多学生到了快考试的时候,都没有在自己的电脑上装过MATLAB。为什么会这样?非得要老师逼迫你才学
    的头像 发表于 08-06 08:05 279次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b><b class='flag-5'>第三章</b>v2 M<b class='flag-5'>文件</b><b class='flag-5'>知识</b>(2)

    MATLAB课程之第三章v2 M文件知识(1)

    ?M文件就是用于保存matlab源程序的文本文件,后缀名是.m,因此称为M文件。这个文件其实和 txt
    的头像 发表于 08-05 10:50 435次阅读
    <b class='flag-5'>MATLAB</b><b class='flag-5'>课程之</b><b class='flag-5'>第三章</b>v2 M<b class='flag-5'>文件</b><b class='flag-5'>知识</b>(1)

    ARM PrimeCell GPIO/ DOP(PL060)技术参考手册

    PrimeCell GPEPL/ DOP(GPIO)及其特征。第二 功能概览阅读本章描述PrimeCell GPIO 信号的主要功能部分。第三章 程序员模型 阅读本章描述PrimeCell GPIO
    发表于 08-02 15:50

    CH32V103基础教程78-USART-空闲中断

    本章教程主要在第七十六章USART-数据收发(带缓冲区)的基础上增加了空闲中断。 1、USART简介及相关函数介绍关于USART相关介绍,在前面第三章以及第六十一章到第六十七已经进行过相关介绍
    发表于 05-08 15:57

    CH32V103基础教程77-USART-指令控制LED灯

    本章教学主要在第二GPIO和第三章USART的基础上进行串口指令控制LED灯实验。 1、USART简介及相关函数介绍关于USART相关介绍,在前面第三章以及第六十一章到第六十七已经
    发表于 05-08 15:55