首页/文章/ 详情

MATLAB课程v3 第四章 程序设计(3)

14小时前浏览9
继续讲解!之前看了老师现场调试程序的视频,大家是不是切身感受到了调试工具的重要性和方便性!看完后,大家有什么感想呢?可以在文末给我留言。这是经验的传承,学到了可以让你的编程水平得到有效提升!先来看看调试方法吧!掌握了方法也就能自行找出程序的错误了。
程序调试是程序设计的重要环节,也是程序设计人员必须掌握的重要技能。没有人能保证写出的程序没有错误,但肯定可以通过调试保证程序的正确运行。MATLAB提供了相应的程序调试功能,即可以通过文本编辑器对程序进行调试,又可以在命令窗口结合具体的命令进行。
一般说来,应用程序的错误有两类,一类是语法错误(很好找),另一类是逻辑错误(不好找)。程序有语法错误,MATLAB软件给出相应的错误信息,并标出错误在程序中的行号。但MATLAB对程序逻辑错误无能为力,不会给出任何提示信息。存在逻辑错误,程序依旧可以正常结束,但结果是错误的,因为程序处理的内容与预期内容并不一致。可以通过也唯有通过调试手段来发现。
这些内容可以对照视频中的操作来消化哦!切记要自己操作一遍!这个调试方法比C语言中的调试要简单的多,而且易于观察调试结果。务必掌握!!!
2021a版本呢?
无差别!
我经常使用最后一种,直接点击行数字增加断点!在MATLAB中进行程序调试时,以下这些事项需要特别注意:

一、理解程序逻辑与功能

  • 透彻掌握算法流程:在调试前,要对程序所基于的算法、实现的功能有清晰认知。例如,若编写的程序是用于图像滤波处理,需明确采用的是均值滤波、中值滤波还是其他滤波算法,了解该算法中每个步骤如何对图像像素进行操作,像均值滤波是如何取邻域像素求平均来替换中心像素值的,这能帮助确定调试时重点关注的代码部分。

  • 梳理代码结构与调用关系:仔细梳理程序中函数与模块间的调用关系,明确主函数如何调用子函数、各个子函数之间是否存在相互调用等情况。比如一个复杂的数值模拟程序,可能包含初始化函数、计算核心函数、结果输出函数等,清楚它们的先后调用顺序以及传递的数据内容,有助于快速定位错误所在的大致范围。

二、善用调试工具

  • 设置断点:

    • 基本操作:在 Matlab 编辑器中,可以通过点击代码行号旁边的空白区域来设置断点(再次点击可取消断点),程序运行到设置了断点的位置时会暂停,方便查看此时各变量的值、程序的执行状态等信息。例如,若怀疑某段循环内的计算有误,可在循环开始处设置断点,当程序运行到此处暂停后,深入查看循环相关变量的初始值等情况。

    • 条件断点:还可以设置条件断点,即仅当满足特定条件时,程序运行到此处才会暂停。比如在一个遍历数组的循环中,只想在数组元素值大于 10 时暂停程序查看情况,就可以设置条件断点,指定相应的条件表达式,这样能更精准地定位到关心的程序执行时刻。

  • 单步执行:

    • 逐行执行:Matlab 提供了单步执行功能,可通过调试工具栏中的相应按钮(如 “Step” 按钮,一般图标类似一个向右的箭头)实现逐行执行代码,每执行一行就能查看该行代码执行后变量的变化情况,对于排查逻辑错误、变量赋值错误等非常有帮助。例如,在执行包含多个数学运算的函数时,逐行查看变量经过每一步运算后的结果是否符合预期。

    • 步入 / 步出函数:当执行到调用函数的代码行时,有 “Step Into”(步入)和 “Step Out”(步出)操作。“Step Into” 可以进入被调用的函数内部,继续逐行查看函数内代码的执行情况;“Step Out” 则是当不想继续查看函数内剩余代码执行细节时,快速执行完当前函数并返回到调用该函数的位置继续后续代码的执行,便于聚焦关键代码区域和把控整体执行流程。

  • 查看变量值:

    • 在调试窗口查看:在程序暂停(如在断点处暂停)时,Matlab 的调试窗口会显示当前作用域内的变量及其值,可直观地查看变量的具体内容,判断其是否符合预期。比如在处理矩阵运算的程序中,查看矩阵变量经过一系列操作后的维度、元素值等是否正确。

    • 命令行查看:也可以在命令行中输入变量名来查看变量的值,这种方式在需要快速查看某个特定变量或者进行一些简单的临时验证时比较方便,例如查看某个临时计算得到的中间变量的值来辅助判断程序逻辑是否正确。

思维定势会让自己嵌入错误中!要想走出来,必须换个角度!当年笔者读研期间,经常发生这样的事情!解决方法就是出去跑跑步再回来分析查找。
为什么要讲这方面内容呢?下面的视频给你解答!看完后需要你举一反三的操作哦!

理论知识用软件实现可以加深理解!这是第一步!后续将理论知识实践化是第二步,难度不一样,当然也要通过软件来实现实践这个过程。如果理论知识有遗忘,请拿起书本复习一下,此刻的复习会事半功倍!2023年暑假在家直播讲课超过十个小时,希望能让学生们的知识在假期也有所提升!时不我待!再一起来看看课堂上的讲解吧!可惜的是学生基本没有互动,讲了个寂寞。


修订记录

20220628 完成初稿;

20230819 修订内容v2;

20231202 修订内容v3;

20241119 修订内容v4;

来源:通信工程师专辑
MATLAB理论
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-11-29
最近编辑:14小时前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 395粉丝 2586文章 351课程 40
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈