Matlab

收集一些Matlab的小TIPS

2017-06-02  本文已影响56人  李彪_哈工大

1. 程序内计时

趁着跑程序的空当,记录下Matlab计时函数的使用。

> tic;plot(rand(50,5));toc
Elapsed time is 0.202291 seconds.
> tic;plot(rand(50,5));toc
Elapsed time is 0.062176 seconds.

你会发现这两条同样的plot命令在计算时间上的差别。第二条plot命令要比第一条执行得快,这是因为Matlab已经在执行第一条plot命令时生成了Figure窗口并且已经将所需要的函数编译到了内存,这样第二条指令就省去了创建Figure窗口以及函数搜索和编译的时间。

>> t0 = cputime; histo_equalization; cputime-t0
ans =
    1.4375
>> t1 = clock; histo_equalization; etime(clock,t1)
ans =
    1.5000
%由此可看出cpu占用时间与程序占用时间之间的差别。

参考《精通Matlab7》,参考Blog文章链接

2. 调试程序

常用调试方法。

  1. 设置或清除断点:使用快捷键F12,或左键该行的数字轴位置增加一个断点。

3. 统计计算时间

Matlab提供了cputime和etime用来计算一次运算所占cpu时间,具体见help

>>t0=cputime; 
myoperation;
cputime-t0

> ans=0.1400
>>t1=clock;
myoperation;
etime(clock,t1)

> ans=11.2800

注:myoperation为用户自定义脚本文件

4. 日期、时间等

** date ,now,clock**

  1. date:按照日期字符串格式返回当前系统日期
>> date,now,clock
ans =
09-Apr-2011
ans =
7.3460e+005
ans =
1.0e+003 *
    2.0110    0.0040    0.0090    0.0170    0.0430    0.0470

year,month,day,hour,minute,second
matlab中分别使用year,month,day,hour,minute,second从上面讲到的字符串和连续型日期时间格式中提取年月日时分秒等信息

>>[year(date),year(now)]
ans =
       2011        2011
注意:上面的函数是没法从向量型日期时间格式中正确读取上述信息的
>>year(clock)
ans =
    5     0     0     0     0     0

Matlab中处理日期与时间的函数详解

5. &和&&的区别

&和&&都是逻辑运算符,主要有两点不同

  1. 当判断两个逻辑值,时,例如A&(f(x)>c)和A&&(f(x)>c)时,对于第一种情况,不论A是否为真,A和(f(x)>c)都要计算,但是对第二种情况,如果A是false,那么后面的(f(x)>c)就不用计算了,倘若f(x)是一个计算量大的函数,那么这将节省很多时间。
  2. &适用于矩阵间的逻辑运算,&&只适用于单个元素,包括数值和字符。

6. 清除&删除

clf 清除图形窗
clc 清除指令窗中显示内容
clear 清除matlab工作空间中保存的变量
close 关闭指定句柄对象窗口。

  1. clear 删除工作空间中的项目,释放系统内存
    语法:
clear
clear name
clear name1 name2 name3...
clear global name
clear -regexp expr1 expr2...
clear global -regexp expr1 expr2...
clear keyword
clear('name1','name2','name3',...)

描述:
clear 删除工作空间内所有的变量,释放系统内存
clear name 仅仅删除工作空间内的m-文件或mex文件里的函数或者变量名。可以通过通配符()有选择地见删除项目。比如说:clear my可以删除工作空间任何名字里以my开头的变量。它可以移除m-文件里的断点,重新初始化永久性变量,只要是m-文件改变或者清除,函数或者永久的变量处设置的断点就会被移除。如果一个name是全局的,它会从当前的工作空间里删除,但是还可以取得的,因为声明它是全局的。如果name被锁锁上以后,它仍然停留在内存中。
clear name1 name2 name3...从工作空间里移除name1,name2,name3
clear global name移除全局变量名
clear -regexp expr1 expr2...清除所有匹配正则表达式expr1 expr2...的所有变量
clear golbal -regexp expr1 expr2....清除所有匹配正则表达式expr1 expr2...的所有全局变量:
clear keyword清除所有标有关键字的选项
clear('name1','name2','name3',...)是函数的语法表示。当变量名或函数名以字符串的形式存储时,用这种形式。
限制:
cleard 在UNIX系统里,不会影响分配给matlab进程的内存大小。

弹出窗口定义操作函数

dialog 创建对话框
errordlg 创建错误对话框
helpdlg 创建帮助对话框
inputdlg 创建输入对话框
listdlg 创建选择列表对话框
msgbox 创建消息对话框
pagedlg 显示页面的版面对话框
printdlg 显示打印对话框
questdlg 问题对话框
uigetfile 文件检索对话框
uiputfile 为写入而显示的检索对话框
uisetcolor 从对话框交互式设置对象的ColorSpec
uisetfont 交互设置对象字体特征
warndlg 警告对话框
http://blog.csdn.net/ouening/article/details/52058193
http://www.cnblogs.com/nktblog/archive/2012/05/09/2491208.html

上一篇下一篇

猜你喜欢

热点阅读