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