初学者要如何进行matlab程序调试和优化,步骤如下:
程序调试和优化
一、 在Debugger窗口调试程序
用open打开M文件并进入Debugger窗口。
二、 设置断点
分为标准断点、条件断点和错误断点。
让断点不起作用或反之:Debug->Enable/DisableBreakpoint。
有效断点(红色)和无效断点(灰色):后者并非是不起作用的断点,程序运行到此照样停止,只是修改后没有保存而修改变成无效。
命令窗口处设置断点——dbstop函数,有两种形式,如下:
dbstop in mfile
dbstop in mfile at lineno
前者暂停在第一行可执行语句上,后者暂停在lineno行。它将函数置于debug方式,其后可用dbcont和dbstep重新运行,也可用dbquit退出debug方式。
清除断点:Debug->Set/ClearBreakpoint或dbclear函数(dbclear all/in mfile/in mfile atlineno)。
在命令窗口显示断点状况:dbstatus或dbstatus mfile。
设置条件断点:Debug->Set/ModifyConditional Breakpoint。
断点的弹出菜单:鼠标右键点击断点。
命令窗口设置条件断点:dbstopin mfile at lineno if expression。
错误断点:Debug->Stopif Errors/Warings。
命令窗口设置错误断点:dbstopif error或dbstop iferror identifier或dbstop ifwarning或dbstop ifwarning identifier或dbstop if naninf。
清除错误断点:dbclearif error或dbclear ifwarning或dbclear ifnaninf或dbclear iferror identifier或dbclear ifcaught error。
三、 交互地使用命令窗口和Debugger窗口
选中Debug->OpenM-files when Debugging。
keyboard语句:观察和修改变量,并用return结束键盘方式并把控制再交给M文件。
在工作区上面的Stack中可以选择collatzplot函数,可以显示当前的变量及其值。
打开数组编辑器:双击变量,或用命令openvar variable。
who和whos:列出当前工作区的变量。
四、 彩色语法突出显示(Syntax highlighting),改正语法错误
可使用原本的颜色,也可自定义:File->Prefences->Colors Prefences。恢复默认颜色Restore Default Colors。
五、 利用错误信息
语法错误,带有下划线,可作为超链接。
六、 在MATLAB命令窗口进入Debug方式
dbstop - Set breakpoint.
dbclear - Remove breakpoint.
dbcont - Resume execution.
dbdown - Change local workspace context.
dbmex - Enable MEX-file debugging.
dbstack - List who called whom.
dbstatus - List all breakpoints.
dbstep - Execute one or more lines.
dbtype - List M-file with line numbers.
dbup - Change local workspace context.
dbquit - Quit debug mode.
七、 Cells
Cell工具条:,从左到右依次是执行当前Cell;执行当前Cell并推进到下一个Cell;执行整个文件;减少或增加光标附近的数值,并运行;除或乘光标附近的数,并运行;插入Cell定界符;显示Cell标题。
Cell是指在Editor/Debugger窗口中把一个M文件分解成的若干段。独立cell可以单独运行。
激活Cell方式:Cell->Enable Cell Mode。
定义Cell:Cell->Insert Cell Divider/Break。
给Cell加标题:Cell->Insert TextMarkup->Cell Title。
下一个Cell:Cell->Next Cell。
上一个Cell:Cell->Previous Cell。
运行一个Cell:Cell->Evaluate Current Cell或点击响应的图标。
八、 M-Lint
M-lint能帮助验证代码的完整性。进入方式:mlint函数;M-Lint的图形用户界面(GUI)。
进入方式:在CurrentDirectory中单击M-lint CodeCheck Report;或者在Editor窗口选择Tools->Check Code with M-Lint。
命令窗口:mlint函数。
文件比较报告:FileComparison Report。
九、 Profile
Profile是能够检测程序性能的工具。
打开:在MATLAB窗口打开Desktop->Profile;在Editor窗口打开Tools->Open Profile;在Command History窗口选择一条语句单击右键,在弹出的快捷菜单中选择Profile Code;在命令行输入“profile viewer”。
运行:检测M文件时在Run this code中输入文件名;检测图形用户界面时首先保证Run this code区空白,点击Start Profiling按钮,然后打开图形用户界面,然后使用,工作完成时点击Profiler窗口的Stop Profiling按钮。
改变Profiler字体:File->Preferences->Fonts,然后选择代码或文本字体,点击Ok或Apply按钮,然后在Profiler窗口刷新。
Profiler简略报告和详细报告。
Profile函数:profile on (开始);profile off(中止)和profile viewer(打开)。