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

        相信在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官方使用文档

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实验一 Python基础编程

实验一 Python基础编程 只为给原因学习编程的同学提供一个思路,让编程更简单!!! 本博主擅长整理粉丝的私信!只要你有需求就可以告诉博主!博主可以帮你解决并发表! 一、实验学时 2学时 二、实…

infuluxdb时序数据库介绍

时序数据库(influxdb) InfluxDB是一个开源的、高性能的时序型数据库,在时序型数据库DB-Engines Ranking上排名第一。 下载地址:https://dl.influxdata.com/influxdb/releases/influxdb2-2.3.0-windows-amd64.zip 启动: CMD到解压…

IDEA编译JDK1.8源码及运行测试

———————————————— 版权声明:本文为CSDN博主「神韵499」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_41055045/article/details/112002440 ————…

缓存穿透、缓存雪崩和缓存击穿

1 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有,每次查询都要去数据库中查询,导致频繁地访问数据库,从而影响系统的性能。攻击者可以利用这一点,对系统进行拒绝服务攻击。 1.1 缓存穿透举例 攻击者…

Qt Plugin插件开发

一、Qt 插件机制 .1 Qt 插件简介 插件是一种遵循一定规范的应用程序接口编写出来的程序,定位于开发实现应用软件平台不具备的功能的程序。插件与宿主程序之间通过接口联系,就像硬件插卡一样,可以被随时删除,插入和修改&#xff…

docker学习笔记(二)

目录 启动Docker ​编辑 建立 Docker 用户 ​编辑 测试 Docker 是否正常工作 卸载Docker Docker镜像加速器配置 配置镜像 检查加速器是否生效 如何在Linux中的.json文件下保存并退出 如果我是使用vi操作进来的,我该如何保存并退出呢? 如何在Li…

基于粒子群优化算法的最佳方式优化无线传感器节点的位置(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 此代码优化了由于电池耗尽而产生覆盖空洞后 WSN 节点的位置。如果活动通信中的任何节点死亡,则通过PSO优化再次定位…

Java Socket和ServerSocket 使用

在Java中,Socket和ServerSocket是用于创建网络连接的重要类。Socket类用于创建客户端套接字,而ServerSocket类用于创建服务器套接字。在本文中,我们将讨论Socket和ServerSocket的作用、使用方法以及相关代码示例。 Socket的作用 Socket是Jav…

【2023 · CANN训练营第一季】应用开发深入讲解——第四章 DVPP初级

学习资源 1.JPEG图片解码 文档 2.图片缩放 文档 媒体数据处理 数据预处理的典型使用场景 数据预处理的多种方式 分为两种,AIPP和DVPP DVPP数据预处理功能 了解两个重要概念 宽stride 和 高stride 理解:这里假设一张图片的宽为500,高为3…

匹配算法之 匈牙利算法详解

参考: 算法学习笔记(5):匈牙利算法漫谈匈牙利算法匈牙利算法、KM算法匈牙利算法(二分图)通俗易懂小白入门)二分图最大匹配——匈牙利算法多目标跟踪之数据关联(匈牙利匹配算法和KM算法)【小白学…

187页9万字企业大数据治理与云平台实施方案(word)

1 项目背景概述 1.1 项目背景理解 1.2 项目需求范围 2 项目技术方案 2.1 咨询研究服务方案 2.1.1 咨询研究服务内容 2.1.2 咨询服务方案 2.2 第三方独立评估 2.2.1 概述 2.2.2 管理办法 2.2.3 考核机制 2.3 安全咨询研究服务方案 2.3.1 安全咨询服务内…

【k8s】【ELK】日志环境部署【待写】

1、日志收集基本概念 k8s中pod的路径: containers log: /var/log/containers/*.log Pod log: /var/log/pods docker log: /var/lib/docker/containers/*/*.log如何收集日志 使用 EFKLogstashKafka 1、filebeat读取容器中的日志,然后写入K…

ChatGPT在小红书文案实践

今天聊一聊ChatGPT在小红书这个实际应用场景的案例。ChatGPT 以较低的门槛提高了使用者创作水平,有较高的下限,但如何创造更高质量的内容就要依靠使用者在领域的能力和AI使用技巧,作者无任何小红书推广和文案写作经验,文章内容来自…

快速排序、希尔排序、归并排序、堆排序、插入排序、冒泡排序、选择排序(递归、非递归)C语言详解

1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录&a…

python中使用opencv LED屏数字识别(可用做车牌识别,一样的原理)

应项目要求需要基于cpu的LED数字识别,为了满足需求,使用传统方法进行实验。识别传感器中显示的数字。因此使用opencv的函数做一些处理,实现功能需求。 首先读取图像,因为我没想大致得到LED屏幕的区域,因此将RGB转换为H…

postman处理各种请求数据

1、后台request接收postman参数 2、后台单个参数接收postman 3、后台RequestParam参数接收postman 注意事项:情况一:全部都是单个字符串的 情况二:有可能是一个json对象序列化成字符串过来的,那么需要在form-data中设置 …

鸿蒙Hi3861学习十-Huawei LiteOS-M(消息队列)

一、简介 消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。任务能够从队列里面读取消息,当队列中的消息是空时,挂起读取任务…

国内免费cdn汇总2023最新

内容分发网络简称CDN,其原理大概是将网站内容分发至加速节点,让用户从就近的服务器节点上获取内容,从而提高网站的访问加载速度。大部分服务商(如阿里云,腾讯云,京东云等)的CDN服务是按使用量收…

【iOS】-- GET和POST(NSURLSession)

文章目录 NSURLSessionGET和POST区别 GET方法GET请求步骤 POSTPOST请求步骤 NSURLSessionDataDelegate代理方法AFNetWorking添加头文件GETPOST第一种第二种 NSURLSession 使用NSURLSession,一般有两步操作:通过NSURLSession的实例创建task;执…

STL配接器(容器适配器)—— stack 的介绍使用以及模拟实现。

注意 : 以下所有文档都来源此网站 : http://cplusplus.com/ 一、stack 的介绍和使用 stack 文档的介绍:https://cplusplus.com/reference/stack/stack/ 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中&…