每天一个提高效率的Matlab编程小技巧(1)-dbstop if error

news2025/6/9 6:40:20

        相信在matlab调试程序的时候都遇到过这种情况:运行程序时命令行报错,而且出错的位置在我们自己定义的函数里,比如下面这个例子:

主函数main.m:

a=[1 2 3];
b=[4 5];
c=sum_squares(a,b);

子函数sum_squares.m

function c=sum_squares(a,b)
    c=a.^2+b.^2;
end

我们运行主函数,显然会因为维度不匹配报错:

        我举得例子非常简单,一眼就可以看出来问题在哪。但是如果变量很多,计算公式很复杂,我们也不知道具体是哪些变量维度不匹配,这时候一般的做法就是在子函数报错的对应行设置断点,重新运行主函数,再来找出具体问题。 如果程序运行时间比较长,一来二去这样就要消耗大量的时间。有没有啥简单的办法呢?当然是有的,在程序运行前加上dbstop if error,这样matlab就会在发生错误的位置暂停,直接可以省去第二次调试的步骤了。

dbstop if error
a=[1 2 3];
b=[4 5];
c=sum_squares(a,b);

        把主函数改成这样,然后运行,直接就会在报错的代码行暂停,调试起来就很方便了:

         dbstop函数还有其他的用法,具体可以查看官方文档:

dbstop

设置断点用于调试

语法

dbstop in file

dbstop in file at location

dbstop in file if expression

dbstop in file at location if expression

dbstop if condition

dbstop(b)

说明

dbstop in file 在 file 中的第一个可执行代码行位置设置断点。当您运行 file 时,MATLAB® 进入调试模式,在断点处暂停执行并显示暂停位置对应的行。

dbstop in file at location 在指定位置设置断点。MATLAB 执行会在到达该位置之前立即暂停,除非该位置处是一个匿名函数。如果该位置处是匿名函数,则执行将在断点之后立即暂停。

dbstop in file if expression 在文件的第一个可执行代码行位置设置条件断点。仅在 expression 的计算结果为 true (1) 时暂停执行。

dbstop in file at location if expression 在指定位置设置条件断点。仅在 expression 计算结果为 true 时,于该位置处或该位置前暂停执行。

dbstop if condition 在满足指定的 condition(如 error 或 naninf)的行位置处暂停执行。与其他断点不同,您不在特定文件中的特定行设置此断点。MATLAB 会在发生指定的 condition 时在任何文件的任何行暂停执行。

dbstop(b) 用于恢复您之前保存到 b 的断点。包含保存的断点的文件必须位于搜索路径中或当前文件夹中。MATLAB 按行号分配断点;因此,文件中的行数必须与保存断点时的行数相同。

dbstop官方使用文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/522698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI孙燕姿 ?AI东雪莲 !—— 本地部署DDSP-SVC一键包,智能音频切片,本地训练,模型推理,为你喜欢的角色训练AI语音模型小教程

目录 感谢B站UP羽毛布团 演示视频 稻香——东雪莲 虚拟——东雪莲 反方向的钟——东雪莲 晴天龙卷风——东雪莲 DDSP-SVC 3.0 (D3SP) 是什么? 下载资源: 解压整合包 准备数据集 智能音频切片 数据集准备 填写训练设置和超参数 开始训练 推…

这个抓包工具太强了,科来网络分析系统强烈推荐

一直以来抓包工具,都推荐和使用wireshark,简单好用。最近发现一款更强大好用的网络分析工具,科来网络分析系统。且技术交流版是完全免费的,无需注册激活。这里强烈推荐和分享给大家。这可是个网络报文分析和监控神器。有多强大&am…

【CSS系列】第七章 · CSS盒子模型,看这一篇就够了

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

Protobuf-net3.2.8中的protogen.exe之使用

目录 protobuf是个好东西 遇到问题 顺便研究一下命令行程序如何调试 protobuf是个好东西 protobuf是一个轻量级的数据格式,相比json,它的数据量为json的1/3,且存储方式为2进制,并进行了压缩,序列化和反序列化更快&…

效率与性能并存——离不开 Visual Studio Code 的前端开发与我

文章目录 📋前言🎯题外话:我与 VSCode 的那些事🎯VSCode 的强大之处🧩VSCode 的诞生🧩VSCode 的一些功能 🎯优与劣(简单小结)📝最后 📋前言 许久…

JVM 原理简介

JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是:一次编…

股票K线基础知识1

K线图 K线图是反映价格在某一时间周期内波动情况的图表,它由开盘价、收盘价、最高价、最低价四个要素构成,若当日收盘价高于开盘价,这表明价格处于上涨状态,此时K线图多用红色表示;若当日收盘价低于开盘价&#xff0c…

(转载)从0开始学matlab(第1天)—变量和数组

MATLAB 程序的基本数据单元是数组。一个数组是以行和列组织起来的数据集合,并且拥有一个数组名。数组中的单个数据是可以被访问的,访问的方法是数组名后带一个括号,括号内是这个数据所对应行标和列标。标量在 MATLAB 中也被当作数组来处理——…

JavaScript实现输入文字,指定输出遍数的代码

以下为实现输入文字,指定输出遍数的程序代码和运行截图 目录 前言 一、实现输入文字,指定输出遍数 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找; 2.…

Prometheus+Alertmanager+webhook-dingtalk实现钉钉告警

文章目录 一、前提准备及规划二、安装及启动2.1 Prometheus安装启动2.2 Node_export安装启动2.3 Alertmanager安装启动2.4 Webhook-dingtalk安装启动 三、配置及测试3.1 Webhook-dingtalk配置钉钉webhook地址3.2 Alertmanager配置钉钉告警3.3 Prometheus集成Alertmanager及告警…

基于Docker的深度学习环境部署以及WSL和linux镜像问题

基于Docker的深度学习环境部署 1. 什么是Docker?2. 深度学习环境的基本要求3. Docker的基本操作3.1 在Windows上安装Docker3.2 在Ubuntu上安装Docker3.3 拉取一个pytorch的镜像3.4 部署自己的项目3.5 导出配置好项目的新镜像 4. 分享新镜像4.1 将镜像导出为tar分享给…

android应用的一种图标隐藏

在Android10之前,应用程序通过调用PackageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)函数来实现图标隐藏。 但是在android10之后,所有具有四大组件和需要申请…

C语言函数

C语言函数 一 函数的分类举例:*比较两个整数的大小**交换两个整数的值*(传地址) 二 参数实参形参 三 练习1.写一个函数判断一个数是不是素数2.写一个函数判断这一年是不是闰年3.写一个函数实现一个整型有序数组的二分查找4.写一个函数&#x…

两种方法教你在postman设置请求里带动态token

问题描述 在使用postman调试接口时,遇到一些需要在请求里加上token的接口,若token出现变化,需要手动修改接口的token值,带来重复的工作量,翻看postman使用手册后,我发现了两种方法可以解决这个问题。 01 …

自动化测试开发年薪30w+?我对自己的职业规划产生了质疑

咱们还是开门见山,今天我们主要讲这几个问题: 1-测试开发都干些啥? 2-为什么那么多公司都要招聘测试开发? 3-测试开发的薪资 一、测试开发是什么? 所谓测试开发,是用更为全面的技术手段来提高测试效率&…

java学习笔记——线程池、Lambda表达式

第一章 等待唤醒机制 1.1 线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源&#xff0…

小米刷机小白教程最新详细版

★本篇为线刷(以修补boot的方式刷入面具) 如果你用的是小米手机,想获取面具root,看这一篇就够了,即使你是小白 必应搜索醉里博客http://202271.xyz?xiaomi 原创不易,谢绝转载,如果本教程有帮…

Linux系统优化

一、系统启动流程 1.centos6 centos6开机启动流程,传送门 2.centos7启动流程 二、系统启动运行级别 2.1 什么是运行级别 运行级别:指操作系统当前正在运行的功能级别; [rootweb01 ~]# ll /usr/lib/systemd/system lrwxrwxrwx. 1 root root…

Linux指令2

目录 一、 more指令二、 less指令(非常重要)三、时间相关的指令四、cal指令五、find指令(非常重要)六、grep命令七、zip和unzip指令八、tar指令(十分重要)打包/解包,不解压它,直接看…

安卓开发 | 将Vue项目打包为app

知识目录 一、写在前面✨二、Hbuilder X准备💕2.1 Hbuilder X简介2.2 下载 三、打包💕3.1 获取dist目录3.2 新建5app3.3 替换文件3.4 编写manifast.json文件3.5 app云打包 四、总结撒花😊 一、写在前面✨ 大家好!我是初心&#xf…