matlab程序如何调试,3.8.1 MATLAB程序调试方法和过程(2)

3.8.1  MATLAB程序调试方法和过程(2)

2.调试工具

MATLAB提供了大量的调试函数供用户使用,这些函数可以通过help指令获得,在MATLAB命令执行窗口输入如下指令:>>help debug

用户便可获得这些函数,这些函数都有一个特点,就是以"db"开头,具体功能和作用如下:dbstop     - Set breakpoint                             %设置断点

dbclear    - Remove breakpoint                  %清除断点

dbcont     - Resume execution                       %重新执行

dbdown    - Change local workspace context      %下移本地工作空间内容

dbmex     - Enable MEX-file debugging               %使MEX文件调试有效

dbstack    - List who called whom                   %列出函数调用关系

dbstatus    - List all breakpoints                  %列出所有断点

dbstep     - Execute one or more lines              %单步或多步执行

dbtype     - List M-file with line numbers          %列出M文件

dbup      - Change local workspace context          %上移本地工作空间内容

dbquit     - Quit debug mode                        %退出调试模式

在MATLAB中,这些调试函数都有相应的图形化调试工具,使得程序的调试更加方便、快捷。这些图形化调试工具在MATLAB编译器的"debug"和"Breakpoints"菜单中,以方便调试使用。

3.调试方法

对于简单的MATLAB程序中出现的语法错误,可以采用直接调试法,即直接运行该M文件,MATLAB将直接找出语法错误的类型和出现的地方,根据MATLAB的反馈信息对语法错误进行修改。

当M文件很大或M文件中含有复杂的嵌套时,则需要使用MATLAB调试器来对程序进行调试,即使用MATLAB提供的大量调试函数以及与之相对应的图形化工具。

下面通过一个判断2000年至2010年间的闰年年份的示例来介绍MATLAB调试器的使用方法。

(1)创建一个leapyear.m的M函数文件,并输入如下函数代码程序。%程序为判断2000年至2010年10年间的闰年年份

%本程序没有输入/输出变量

%函数的使用格式为leapyear,输出结果为2000年至2010年10年间的闰年年份

function leapyear                   %定义函数leapyear

foryear=2000:2010              %定义循环区间

sign=1;

a=rem(year,100);            %求year除以100后的剩余数

b=rem(year,4);                  %求year除以4后的剩余数

c=rem(year,400);                %求year除以400后的剩余数

ifa=0%以下根据a、b、c是否为0对标志变量sign进行处理

signsign=sign-1;

end

ifb=0

signsign=sign+1;

end

ifc=0

signsign=sign+1;

end

ifsign=1

fprintf('%4d \n',year)

end

end

(2)运行以上M程序,此时MATLAB命令窗口会给出如下错误提示: ??? Error: File: leapyear.m Line: 10 Column: 6

The expression to the left of the equals sign is not a valid target for an assignment.

由错误提示可知,在程序的第10行存在语法错误,检测可知if选择判断语句中,用户将"=="写成了"="。因此将"="改成"==",同时也更改第13、16、19行中的"="为"=="。

【责任编辑:book TEL:(010)68476606】

点赞 0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值