MATLAB 中有哪些命令,让人相见恨晚?
(1)bsxfun
强大的、万能的、不同维数的矩阵扩展混合运算,从此告别矩阵运算中的for循环,另matlab里所有以fun为后缀的命令都很好用,arrayfun,cellfun,structfun,等等
(2)@() 匿名函数
使用函数式编程,在编写以数学公式为主的程序中比传统编程方法好得多
(3)set(gca,...)等
所有与画图相关的命令都包含了千奇百怪的属性和参数,非常实用,如著名的set(gca,...)
(4)$ $
画图中的标题、注释等文字内容是可以直接使用latex格式的,只须在包含latex命令的部分前后用$框起来即可
(5)slice
高维切片,要在三维空间中表现三个以上变量的函数关系,必备此命令
(6)转置但不共轭
b = a.'
(7)得到列向量
b = a(:)
相应的,得到行向量就是
b = a(:).'
(8)清除并更新所有class 的定义
clearclasses
当你修改了某些 class 的定义时,需要调用此命令——仅仅clear all 是不够的。
(9)忽略某些返回参数
[~, idx] = max(a)
忽略最大值,只返回最大值的索引。
【注】这种语法是在Matlab 7.9 (2009b) 中引入的,在此之前的版本不支持这种用法。如果你使用早期版本,可以使用如下写法:
[tmp,idx]=max(a);cleartmp
或者一句话搞定
[idx, idx] = max(a)
不过第二种写法不见得每个人都会喜欢。
(10)去除长度为1 的维度(常用于3D 矩阵转为2D)
b=squeeze(a)
Simulink 的 save to workspace 模块经常得到一个 [m x 1x n] 的三维矩阵,直接使用非常不便。使用squeeze 后,会将其转换为 [m xn] 的二维矩阵。(11)代码运行耗时显示
tic;some_code_to_run();toc
tic/toc 会在 Matlab 命令行中打印出两条命令之间的代码的运行耗时。更详细的代码效率分析,可以使用profile 命令。
(12)电脑跑分
bench
只能用于相同版本的 Matlab 下电脑之间的比较。
(13)记录命令行命令
diaryon% Lots of my Matlab commands here.
diaryoff
使用 diary 好处是运行结果也会被记录下来,并且以纯文本方式存储,方便编辑。更正式的报告,则推荐使用publish。
(14)反转向量
b=fliplr(a) % For row-vector a.
b=flipud(a) % For column-vector a.
b=wrev(a) % For any vector a.
b=a(end:-1:1);% This is the implementation of function wrev.
(15)去除数据中的NaN
a(isnan(a)) = []
对于 inf 和 -inf,使用 isinf 命令。
来源: Matlab工作坊
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















