matlab实用技巧

1. Ctrl+C 中断正在执行的操作

如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断。

2. figure命令新建一个绘图窗口

figure 可以打开一个空的绘图窗口,接下的绘图命令可以将图画在它里面,而不会覆盖以前的绘图窗口。

figure(N),将编号为N的窗口置为当前figure,出现在所有窗口的最前面,如果该窗口不存在,则新建一个编号为N的空白figure

3. 注释掉一段程序:%{%}

经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %的组合。输入%{后,后面的代码都会变绿,在注释结束的地方再加上 %} 

也可以选中要注释内容,在右键菜单中选择Comment (Uncomment去掉注释标记),或使用快捷键Ctrl+R,取消注释快捷键为Ctrl+T

4. doc 命令名,打开命令的帮助文档

help命令不同,帮助文档MATLAB Help中对命令的描述更详细,往往还有一些例子,更便于理解。

5. clc 清屏

清除命令窗口中的所有输入和输出信息,不影响命令的历史记录。

6. clear clear all

clear 变量名:清除单个变量。

clear all 清除所有的变量。

7. close all

关闭多个绘图窗口。

8. 上下光标键↑↓

在命令窗口中,上下光标键可以将历史记录中的命令复制到输入位置,便于快速重新执行。

9. Tab补全

Tab键,当只有一个以这些字母开头的命令时,将自动补全命令名,否则显示一个命令名列表,方便从中选择。当然,只在命令窗口中有效。

10. cell模式

cell模式相当于将其中的代码拷贝到命令窗口中运行。两个%后接一个空格(%% )开始一个cell。将输入光标放到一个cell中时,背景将变为浅黄色,Ctrl+Enter执行cell中的代码。

执行cell中代码时不需要保存m文件,该m文件可以不在路径列表中。

cell模式中,断点不起作用,当然,调用的子程序中的断点还是正常的。

11. 获取文件列表,批处理

MATLAB内置了一些文件操作命令,例如cd(切换工作目录)dir(ls,显示目录内文件列表)等。dir命令可以返回目录中的文件和文件夹列表,存在一个结构体数组中。如果需要对一些数据文件进行批处理,而文件名又没有一定的规律,你可能需要借助于这个命令。

12.其他

ctrl+g 跳转到输入的行号

ctrl+shift+g(+f) 打开搜索对话框,可以用此功能搜索被调用函数的位置

 

Matlab注释技巧

1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚。不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字 /下划线等组成。原因是简单的单词命名容易与matlab内部函数名同名,结果会出现一些莫名其妙的错误。例如,写个m文件,命名为spy,运行时就弹出一个怪怪的figure,呵呵,我当初还以为是什么bug

2. 调试程序时,经常要屏蔽掉一整段程序进行,也就是将其标示注释符%。有两个办法:一种是选定后 ctrl+rctrl+t 一种是在段首加 if 0 ,段尾加 end,中间都不执行,也就相当于注释掉了

3. m文件时,选中某段程序内容,ctrl+i matlab帮你自动对齐程序。这样程序看起来很有层次,容易发现程序中的错误。

4. ctrl+F2作标签,ctrl+g 跳至某一行,这些快捷键都很实用。

5 matlab7中有块注释符号%{  %}

多行加标注时,也可以选中需要添加标注程序,然后在Edit/或者右键选择Comment。或者Uncomment除掉标注

 

如何高效使用Memory?”Out of Memory”?

方法如下:

1. 在命令行输入 pack 整理内存空间

当内存被分为很多碎片以后,其实本身可能有很大的空间,只是没有作构的连续空间即大的Block而已。如果此时Out of Memory,此时使用pack命令可以很好的解决此问题。

2. 使用稀疏矩阵或将矩阵转化成稀疏形式 sparse

如果矩阵中有大量的0,最好存储成稀疏形式。稀疏形式的矩阵使用内存更少,执行时间更短。

3. 尽量避免产生大的瞬时变量,把没必要的变量clear掉或当它们不用的时候应该及时clear

4. 减少变量,尽量的重复使用变量(跟不用的clear掉一个意思)。

5. 把有用的变量先save,后clear 掉,需要时再读出来。

6. 使用单精度 single 短整数替代双精度 double

single: 精度 (1.1921e-007) 最大数 (3.4028e+038)

double: 精度 (2.2204e-016) 最大数 (1.7977e+308)

7. 为矩阵变量预制内存而不是动态分配

8. 尽量早的为大的矩阵变量预制内存

9. 如果可行的话,将一个大的矩阵划分为几个小的矩阵,这样每一次使用的内存减少。

 

展开阅读全文

没有更多推荐了,返回首页