MATLAB基础--内存的使用和程序调试和优化

内存管理函数

  • emory:显示可用内存
  • hos:显示给工作区分配了多少内存
  • pack:把已经存在的变量保存到磁盘
  • clear:从内存中删除变量
  • save:有选择的把变量保存到磁盘
  • load:把已经保存的数据文件用load函数重新载入。
  • quit:退出MATLAB,并返回所有分配的内存到系统中。

怎么高效使用内存

压缩内存的使用

1.仅导入需要的文件大小
2.以块为单位处理数据
3.避免建立较大的临时数组
4.使用嵌套函数来传递数据

使用适当的数据存储方式

  • 适当的数据类型
  • 读入文件时选择适当的数据类型(默认读入的按double保存)
fid=fopen('large_file_of_uint8s.bin','r');
a=fread(fid,le3,'uint8');
a=fread(fid,le3,'uint8=>uint8');

-尽可能使用稀疏矩阵(只存储非零元素和它们的位置)

避免数据碎片状存储

多用pack()函数

内存回收

自己用

clear Var1,Var2…

回收。

或者通过PC的系统和存储硬件来解决“Out of Memory”问题

程序调试和优化

使用直接调试法

  • 去掉怀疑语句的分号
  • 在疑问语句附件添加显示某些关键变量的语句、
  • 在程序适当位置添加keyboard,K>> 可以查看或者修改变量的数值。在提示符输入return命令之后继续执行。
  • 利用echo命令,运行程序时在命令窗口逐行显示正在执行的代码。

遇到更复杂的就需要

使用Debugger窗口调试

实际就是M文件编辑器,使用函数折叠和断点设置。会出现k>>,输入想查看值的符号即可查看。

在命令行窗口调试

懒的写了😄 一堆函数
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"菜单中,以方便调试使用。

profile

它可以用来优化我们使用的程序。
运行方法:

  • desktop-profiler
  • tool -open profiler
  • 在命令行输入:profile viewer
  • 历史命令选择一条语句,单击鼠标右件从菜单中选择Profile Code(对应输入文件位置或命令)

报告

报告结果:function name、calls(函数被调用的次数)、total time(总共被调用的时间)、self time(函数自己耗费的时间)

命令格式

profile viewer
profile on
profile on-detail level
profile on-history
profile off
profile resume
profile clear

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值