MATLAB 中有哪些命令,让人相见恨晚?

u=2278047455,2821043550&fm=26&gp=0.jpg

(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)去除长度为的维度(常用于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工作坊

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

12
2
3