Matlab调试技巧(实战篇)

1、合理利用工作区,观察关键变量的变化(可以与步进策略结合)

2、打印可能有问题的变量

3、合理利用步进策略,跟踪程序运行过程,发现和预想不一致的地方,定位问题点,进一步分析可能的问题

4、结合Fig运行的状态直观分析问题。

例如我的程序里是讲机器人智能体运动的过程,重要的是运动的模式是否正确,当我发现有机器人的运动不对的时候,我会根据其位置(坐标),对应找到此时工作区里的robot的mat数据,发现此时机器人任务负载为空,是有问题的,从而要回头去找给机器人赋予任务的程序的问题。(注意下面两张图的标注区域代表的机器人不一样,是要表达这个意思)

5、直接根据算法,去分析写的代码逻辑是否正确。

这也是最基本的分析过程,可以排除大部分基础逻辑问题。

6、代码写一个模块就要测试下,看看是否对的。

不要所有代码写完再来测试,这样很多隐藏的问题难以发现。

7、熟练掌握程序基本逻辑是能够顺利调参的前提,这里需要很多的经验。

(1)举几个不完整的例子,如下图,在判断条件里写的是robot(id),是以机器人之前的状态充当判断条件,修改时将信息存在newrobot(id)中,这样确保了一个群体里的任意个体更新信息的过程是并行的(程序外部逻辑是有遍历所有机器人的循环的)。

(2)再举个例子,请注意,涉及到除法的一定要仔细考量分母为零的情况,分类讨论。

(3)再举个例子,一定要注意条件的完备性,少考虑一个条件,整个程序的运行效果会与设想的差别甚大。另外,break的位置很重要,这是编程的基本逻辑,我之前将break放在了if判断的外面,也就是for循环的第一层,导致只运行一遍循环就跳出了,只怪编程水平太菜,一些基本的逻辑问题还用不好。

8、对程序的熟悉程度决定了调试的速度和效率

在出现问题时,对程序的熟悉可以帮助我们尽快的追根溯源,从而找到症结所在。

未完待续。。。。欢迎大家提问,我会尽力回答,可以私信或者本帖留言。

Matlab调试技巧(实战篇)(一)相关推荐

  1. 分享平面设计中的视觉思维(技巧实战篇)

    好的平面品牌设计一定会有出色的视觉效果.这里分享从视觉思维和视觉传达设计的内涵.概念等方面入手,指出视觉传达设计是视觉思维的过程.就视觉传达设计中视觉思维创新展开论述,从视觉中心.比例与尺度.对比与统 ...

  2. 【C语言】VS编辑器实用的调试技巧

    先聊聊我为什么要出这篇关于VS的调试技巧这篇文章,是因为我在学习数据结构和C++等知识时,常常会写出bug,但自己由于对于VS2019的调试不是很熟练,也有点"害怕"调试,担心浪费 ...

  3. QCC304x系列开发教程(实战篇) 之10.2 QCC3040之教你调试入仓和出仓情景下的程序运行

    查看全部教程开发请点击:高通蓝牙耳机QCC304x开发详解汇总(持续更新中) 查看本文全部文章请点击:QCC304x系列开发教程(实战篇) 之10.2 QCC3040之教你调试入仓和出仓情景下的程序运 ...

  4. Vue.js 父子组件通信的十种方式;告诉世界前端也能做 AI;你可能不知道的14个JavaScript调试技巧...

    记得点击文章末尾的"阅读原文"查看哟~ 下面先一起看下本周的摘要吧~ 想了解老用户如何参与阿里云双十一1折拼团特惠主机的,可以看第二条推送,文中提供了两种方法~,一起看看本周有哪些 ...

  5. [转] Xcode 高级调试技巧

    在苹果的官方文档中列出了我们在调试中能用到的一些命令,我们在这重点讲一些常用的命令 调试本地文件方法(Mac OS X):(lldb) target create "/Users/piaoy ...

  6. Xcode高级调试技巧(1)

    在苹果的官方文档中列出了我们在调试中能用到的一些命令,我们在这重点讲一些常用的命令 调试本地文件方法(Mac OS X):(lldb) target create "/Users/piaoy ...

  7. VsCode 各场景高级调试技巧!

    这是「进击的Coder」的第 753 篇技术分享 作者:愣锤 来源:https://juejin.cn/post/7071146744339234846 " 阅读本文大概需要 23 分钟. ...

  8. 视频教程-反勒索编程实战篇-病毒木马

    反勒索编程实战篇 05年在安天从事病毒分析,06年设计反木马引擎,07年进入毒霸参与主动防御的安全策略制订及相应驱动代码编写.09年在福州网龙负责反木马反外挂.15年在卫士通负责终端安全应急相应,恶意 ...

  9. 跟安全技术大师学习黑客攻防技术 ——《黑客攻防技术宝典:web实战篇》

    跟安全技术大师学习黑客攻防技术 --<黑客攻防技术宝典: web 实战篇> 随着网络技术的快速发展以及网络带宽的不断扩张, Web 应用程序几乎无处不在,渗透到社会的经济.文化.娱乐等各个 ...

最新文章

  1. netty之ObjectSizeEstimator
  2. Mac 10.12安装Office 2011
  3. 选择奋斗---激励自己
  4. 电脑达人教你怎么解决Win7系统盘渐渐变小的问题
  5. 深究angularJS——(上传)FileUploader中文翻译
  6. 动态生成Repeater
  7. 这次使用一个最舒服的姿势插入HttpClient拦截器技能点
  8. 微型计算机相关的英文文献,微型计算机控制系统--------外文文献翻译
  9. mysql datetime 后面带了很多0_面试官:MySQL 表设计要注意什么?
  10. HTML和CSS进阶
  11. Samba配置文件常用参数详解
  12. 思科模拟器pnatlab,华为模拟器ensp桥接本地
  13. clion msys2 Mingw 未找到
  14. 17秋 软件工程 团队作业 最终总结博客
  15. arm触摸屏的头文件_ARM触屏校准程序
  16. Airbnb短租房源数据分析
  17. 该如何提高个人影响力
  18. android蓝牙耳机来电铃声,Android实现积极连接蓝牙耳机
  19. 发动机和变速箱工作原理
  20. Jboot整合Swagger

热门文章

  1. 系统扩展方式 scale up和scale out
  2. spingboot2.0以上利用YUI Compressor Maven结合压缩混淆JS/CSS
  3. springboot+mysql “友书”综合书籍平台-计算机毕业设计源码24489
  4. 【题库】上海市学校心理咨询师-普通心理学-考点解析 9.2 意志行动过程
  5. Linux用户至今仍无法完成的七项任务
  6. 009exec函数wait、waitpid回收子进程
  7. 变态的静态资源缓存与更新
  8. FL Studio 中的 Fruity Compressor 效果器功能介绍
  9. 802.11--CSMA/CA机制简述
  10. webService AxisFault