-
matlab中如何调试
- 时间:2024-11-13 12:53:09
大家好,今天Win10系统之家小编给大家分享「matlab中如何调试」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!
1.matlab自定义函数调试
Matlab自定义函数的几种方法
1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;
2、函数文件+子函数:定义一个具有多个自定义函数的M文件;
3、Inline:无需M文件,直接定义;
4、匿名函数;
5、Syms+subs: 无需M文件,直接定义;
6、字符串+subs:无需M文件,直接定义;
7、直接通过@符号定义.
1、函数文件+调用函数文件:定义多个M文件:
% 调用函数文件:myfile.m
clear
clc
for t=1:10
y=mylfg(t);
fprintf(‘M^(1/3)=%6.4f\n’,t,y);
end
%自定义函数文件: mylfg.m
function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致
Y=x^(1/3);
注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。
2、函数文件+子函数:定义一个具有多个子函数的M文件
%命令文件:funtry2.m
function []=funtry2()
for t=1:10
y=lfg2(t)
fprintf(‘M^(1/3)=%6.4f\n’);
End
function y=lfg2(x)
Y= x^(1/3);
%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。
3、Inline:无需M文件,直接定义;
%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。
调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。
例如:
f=inline(‘x^2+y’,’x’,’y’);
z=f(2,3)
Ans=7
注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。
例:
Clear
Clc
f=’x^2’;
Syms x g;
g=x^2;
h=inline(‘x^2’,’x’);
4. 匿名函数
使用matlab函数句柄操作符@,可以定义指向matlab内置函数和用户自定义函数的函数句柄,函数句柄也可以像函数一样的使用。例如:
>>x=-pi:0.1:pi;
>> fh={@cos,@sin};
fh =
@cos @sin
>>plot(fh{2}(x))
5、Syms+subs: 无需M文件,直接定义;
用syms定义一个符号表达式,用subs调用:
Syms f x %定义符号
f=1/(1+x^2); %定义符号表达式
subs(f, ‘x’, 代替x的数值或符号)
注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。
这种函数定义方法的特点是,可以用符号进行替换
Syms f x
f=1/(1+x^2);
subs(f, ‘x’,’y^2’)
ans=
1/(1+(y^2)^2)
注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。
6、字符串+subs:无需M文件,直接定义;
直接定义一个字符串,用subs命令调用。例如:
f=’1/(1+x^2)’ %定义字符串
z=subs(f,’x’,2)
g=subs(f,’x’,’y^2’)
注:优点是,占用内存最少,定义格式方面自由。
缺点是,无法对字符进行符号转化。
当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f).例如:
f=’x^2*y’;
x=2;y=3;
subs(f)
ans=12
7、直接通过@符号定义.
示例如下:
>> f=@(x,y)(x.^2-sin(y))
f =
@(x,y)(x.^2-sin(y))
>> f(2,3)
ans =
3.8589
2.matlab怎么debug
1.MATLAB的debug菜单
1.1控制单步运行
step:单步,不进入函数
step in:单步,进入子函数单步
step out:在函数中的话跳出函数,否则直接跳入下个断点处
save and run:存储,运行
go until cursor:运行到光标处
可以看到,以上几个按钮和C编辑器中是基本一样的意思
1.2断点操作
set/clear breakpoint:设置清除断点
set/modify conditional breakpoint:设置或修改条件断点,条件断点可以使程序满足一定条件时停止
enable/diable breakpoints:使断点有效或无效
clear breakpoints in all files:清除所有断点
stop if errors/warnings:程序出现错误或警告时停止运行,进入调试但不包括try...catch中的错误
进入调试时,命令窗口出现
K>>字样
运行到断点,程序停止,如要继续,则使用debug中的continue按钮
切换工作空间,结束对程序的调试,打开编辑窗口中的stack列表,选择base,切换到主工作空间。记得要清楚掉断点,红色圆点去掉了,绿色箭头(调试)变为白色,然后选择continue,白色箭头去掉,调试完成。
以下是一些常用的调试命令:
-------------------------------------转张卫国《MATLAB程序设计与应用》
dbstop断点设置
dbclear清楚断点
dbcont继续
dbdown/dbup修改工作空间的上下文关系
dbquit退出调试
dbstack显示当前堆栈的状态
dbstatus显示所有已设置的断点
dbstep执行一行或多行代码
dbtype显示M文件代码和相应的行号
内容不多,但是我觉得编写程序时debug是非常有用的,一些错误,不用单步等往往不容易找到,特别是在一些智能仪器单片机的开发过程中,debug往往展示着自己不同寻常的魅力,O(∩_∩)O~总结一点,希望对大家有所帮助,不当之处还望大家不吝指正。
以上就是关于「matlab中如何调试」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~
【Win10系统之家wWw.ghoSt580.net♂独①家使用,不得自行转载,违者必追究!】
相关文章
-
1.matlab自定义函数调试Matlab自定义函数的几种方法1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件;2、函数文件+子函数:定义一个具有多个自定义函数的M文件;3、Inline:无需M文件,直接定义;4、匿名函数;5、Sy...
-
1.matlab程序if语句用法MATLAB中我们常常用到条件判断语句结构,通过实例介绍这个结构的用法:1、if.....end结构,运行下面的句子,此条件语句是判断5是否大于3,如果大于3,就将1赋值给;2、if....else...end结构,我们以如...
-
1.阅读时怎么找文中的关键词一、阅读理解的解题程序1.先将文章分类——信息类,一般文章(1、说明文,2、讲故事)注意、讲故事的文章中人物较多时,阅读时不可过快!造成反复阅读,欲速则不达——切记搞清人物关系非常重要,通常这...
-
1.win7系统右键菜单没有winrar压缩选项怎么办1、安装了WinRAR,但没菜单项这种情况,大多是由于病毒或某种原因,导致右键中的WinRAR菜单项丢失,解决方法,先在开始菜单->所有程序,打开WinRAR软件;2、在WinRAR程序主界面,...