网站设计师需要学什么,北京招聘信息,培训app的制作,怎样建免费个人网站1内容 1#xff09;代码内调试#xff1b; 2#xff09;断点调试方法#xff1b; 3#xff09;指令调试方法#xff1b;
二、断点调试方法 调试代码最经典的就是利用设置断点的方法#xff0c;此处给出对应快捷键#xff1a;
F12#xff1a;设置/取消 断点
F10代码内调试 2断点调试方法 3指令调试方法
二、断点调试方法 调试代码最经典的就是利用设置断点的方法此处给出对应快捷键
F12设置/取消 断点
F10单步执行
F11单步执行且碰到function跳入函数内执行F10则不会跳入这是二者的明显区别
Shift F11:跳入function之后通过该指令推出function
F5执行相邻两次断点见的所有指令如断点在for循环中则F5一次循环执行一次
Shift F5退出断点调试 。 三、指令调试方法 A-keyboard (return) 经常碰到一些情况如矩阵相乘A*B时假设A已知B需要运算得出矩阵B的size难以确定是用A*B还是A*B难以确定可不可以先计算B运算完之后观察B的特性再确定用A还是A‘keyboard可以解决这个问题。 keyboard顾名思义就是键盘的意思即把控制权交给键盘。执行程序的过程中把控制权交给键盘如何再重新返回程序呢因此
keyboard 与 return
通常联合使用。如执行
max_eig max( eig(G*pinv(F)*G) ); 但难以确定G还是G’,利用keyboard则可以修改为
keyboard P_tmp real(m1 - max_eig); 在进入K 之后此时已经可以观察F、G的size因此在Command Windows输入
max_eig max( eig(G*pinv(F)*G) ); return; 即可保证程序顺利执行。 B-try (catch) end 我们知道matlab的代码是按行执行的如果碰到错误行则程序中断。try..catch可以使得可能出错的代码不影响后面代码的继续执行也可以检查排查解决程序的一些错误增强代码的鲁棒性和可靠性。
try ... end
try...end用于尝试运行一段也许可能出错的代码比如
m rand(3,4); n magic(5); try a m*n; disp(a) end disp(m) 这段代码里面a m*n运行会出错不满足矩阵乘法的原则。所以a m*n和disp(a)不执行但后面的disp(m)亦然会执行。
try...catch...end
try...catch...end用于检查错误如
m rand(3,4); n magic(5); try a m*n; disp(a) catch disp(size(m)) disp(size(n)) end disp(m) 这里面当程序碰到 a m*n;错误后就会跳转到catch里面的语句继续执行有点类似于if...else...end。
dbstop in file 在.m文件中,插入dbstop in file指令如下面这段程序我们在其中加入了dbstop in VMD,其中VMD是一个function
load ./data/Gdpyear.mat datadata-mean(data);%去均值,即数据中心化 dbstop in VMD tlinspace(1992.0,2016.5,length(data)); %设定x轴 for st1:9 Kst1; [u, u_hat, omega] VMD(data, length(data), 0, K, 0, 1, 1e-5); uflipud(u);