MATLAB是美國MathWorks公司出品的商業(yè)數學軟件,用于數據分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統(tǒng)等領域。
MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室),軟件主要面對科學計算、可視化以及交互式程序設計的高科技計算環(huán)境。它將數值分析、矩陣計算、科學數據可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設計語言(如C、Fortran)的編輯模式。
MATLAB和Mathematica、Maple并稱為三大數學軟件。它在數學類科技應用軟件中在數值計算方面首屈一指。行矩陣運算、繪制函數和數據、實現算法、創(chuàng)建用戶界面、連接其他編程語言的程序等。MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數學軟件。在新的版本中也加入了對C,FORTRAN,C++,JAVA的支持。
20世紀70年代,美國新墨西哥大學計算機科學系主任Cleve Moler為了減輕學生編程的負擔,用FORTRAN編寫了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市場。到20世紀90年代,MATLAB已成為國際控制界的標準計算軟件。
MATLAB:統(tǒng)一了用于一維、二維與三維數值積分的函數并提升了基本數學和內插函數的性能MATLAB Compiler:可以下載 MATLAB Compiler Runtime (MCR),簡化編譯后的程序和組件的分發(fā)Image Processing Toolbox:通過亮度指標優(yōu)化進行自動圖像配準Statistics Toolbox:增強了使用線性、廣義線性和非線性回歸進行擬合、預測和繪圖的界面System Identification Toolbox:識別連續(xù)時間傳遞函數2022年4月6日消息,MATLAB R2022a 原生 Apple Silicon 平臺開放測試版是 MATLAB 的早期版本,適用于 Apple Silicon Mac 用戶,以評估現有代碼和應用程序的執(zhí)行,并測試第三方集成和附加組件。此測試版將持續(xù)到2022年8月31日。
從 MATLABMobile? 中,您可以訪問在 MathWorks® Cloud 中運行的 MATLAB,并對您的文件和數據執(zhí)行許多 MATLAB 命令。下列部分包含 MATLABMobile 的相關技巧和限制。
主題
MATLAB 命令
輸入命令
MATLAB Mobile 將您在設備上輸入的所有命令發(fā)送到 Cloud 以進行計算。
使用自動補全功能
MATLAB Mobile 中的自動補全功能可方便您鍵入內容。
在使用 MATLABMobile 命令創(chuàng)建或更新圖窗時,MATLAB 會顯示縮略圖和較大的預覽。
圖窗和繪圖
共享代碼或圖窗
如何共享或保存代碼和單個圖窗。
從歷史記錄中刪除命令或圖窗
刪除不需要的命令更便于在歷史記錄中滾動查看。
信號處理
alignsignals 求兩個信號的delay, 并且對齊信號
buffer 可以把信號切分成不同segment組成矩陣
dsp.SampleRateConverter 改變采樣率
finddelay 求兩個信號的delay
findpeaks 檢測峰值
findsignal 在一段信號里尋找最相似的某一片段
edr 求兩個信號的編輯距離
pentropy求信號的譜熵
sgolayfilt SG濾波器
數值計算
求cdf
atan2 / atan2d 四象限反正切
diff 差分
discretize 小數離散化
lsqnonlin
nchoosek n個里面選k個組合
perms 全排列
rand 生成[0,1]隨機小數
randi 生成[1,n]的隨機整數
randperm 隨機打亂一個序列
repmat 復制矩陣
sort 對向量排序
strcat連接兩個字符串
strcmp 比較字符串是否相等
unique去掉重復
集合交并補
科學計算
confusionmat
cvpartition
deal 輸入分發(fā)到輸出
ismissing 查找缺失值
擬合曲線
Squeeze
tabulate 統(tǒng)計數量與比例
系統(tǒng)操作
beep
clear
clc
clf
dbstop if error
quit 推出matlab
sound 發(fā)出聲音
waitbar 顯示進度條
warndlg 創(chuàng)建警告窗
prefdir
文件操作
fileparts 求信號的目錄, 文件名, 擴展名
mfilename
畫圖
axis ij
confusionchart
linkaxes
上標下標斜體
yyaxis right
zoom on
matlab只是個軟件,用來完成機械的計算,而如何安排這些計算,需要用戶掌握最基本的數學概念。這篇將介紹工程數學中常用的數學概念,與matlab似乎并不相關,但實則是matlab的基礎。
1.數值與符號
如果給工程數學問題分類,最大的兩類肯定是數值問題和符號問題,對應matlab的數值運算和符號運算。簡而言之,數值運算就是所有的變量的值已知,求解的也是一些具體的值;符號運算則剛好相反,不要求所有的變量都已知,求解的結果也不是變量具體的值,而是變量之間的關系。一個簡單的例子是
①數值問題:求解一元二次方程,ax2+bx+c=0,其中a=b=c=1,所求得的結果一定是x=幾點幾+幾點幾i,是個復數,是個具體的數值。
②符號問題:求解一元二次方程,ax2+bx+c=0,所求的的結果一定是x=求根公式,是abc的函數,是個關系
可見,一個問題是數值問題還是符號問題,很大程度上決定于結果需要求解的是數值還是關系。當然兩個問題也可以相互轉化,比如數值問題的一元二次方程,我們一般會先轉化成符號問題,把abc代入求根公式,求出來變量x的具體數值。但實際中,一般我們并不推薦這樣做,原因是matlab的數值和符號是完全不同的兩套系統(tǒng),相互轉化不僅需要多余的數值符號轉換語言,更可能帶來查錯的不便。
2.典型數值問題
以下是常見的數值問題,文中提到的解法均可在數值計算、科學計算、數值算法這類書中找到。
2.1代數方程
代數方程又分為線性方程和非線性方程,線性方程一般可以轉化為矩陣形式AX=b,對A求逆即可。求逆的數值解法一般有高斯賽德爾迭代,超松弛迭代等。非線性方程一般轉化為f(x)=zeros其中x是個向量,右側的zeros表示f是個多輸出函數,數值解法一般是迭代,常見的有牛頓迭代,最速梯度,點斜式等。
2.2常微分方程
常微分方程一般轉化為Dy=f(y,t),且y(0)=y0是初始條件,其中y和Dy都是向量,f也是個多輸出函數,數值解法有歐拉法,龍格庫塔法。
2.3偏微分方程
偏微分方程比較復雜,matlab處理偏微分方程也不專業(yè),我也幾乎不用matlab處理這類問題。但工程數學上,偏微分方程的解法有兩類,差分法和有限元法。差分法需要采用中心差分,迎風差分等。有限元需要計算剛度矩陣等。
2.4插值和擬合
插值和擬合是完全不同的兩個數學概念,雖然很多時候很多人都混淆了。兩者的描述都可以歸結為:已知函數上的點(x1,y1),(x2,y2)...(xn,yn),求一個已知的x,對應的y的數值。插值常用的多項式插值,三次樣條插值。擬合的本質是一個最優(yōu)化問題,其中最常用的一種擬合是線性擬合,求解方法是最小二乘法。
2.5離散周期傅里葉變換
嚴格說來,這并不能算一個數學問題,只是一種運算方式,就好像加減乘除一樣。特殊性在于這種變換是對于一個向量進行,且運算后的結果依然是個向量。這里提出來是為了強調這種傅里葉變換的限定,要求是離散周期,這也是數值方法能處理的唯一一種傅里葉變換。
2.6最優(yōu)化問題
最優(yōu)化問題比較寬泛,一般可以歸結為求目標函數f(x)的最大或者最小值,其中f是一個單輸出的函數,x是一個向量。其中x需要滿足線性約束條件、非線性約束條件、上下界。具體的解法有最速梯度,遺傳,蟻群,退火等算法。
2.7數值積分
已知函數上的點(x1,y1),(x2,y2),...(xn,yn),求函數在x1到xn的定積分。常見算法有矩形公式,梯形公式,辛普森公式。類似的問題還有數值求導。
3.典型符號問題
以下是常見的符號問題,需要特別指出的是,無解問題。數值問題中也有一部分無解問題,但大多數工程中是碰不到的。而符號問題恰好相反,絕大部分我們遇到的符號問題都是沒有解的,或者準確的說,沒有解析解。比如求一元五次方程,我們知道x和這些系數存在關系,但無法寫出顯式的表達式,也就是說沒有解析解。
3.1遞推轉通項
這個問題可以歸結為:已知xn+1=f(xn),求xn,常見于數列的推導。
3.2代數方程
區(qū)別于數值問題中的代數方程, 這里的代數方程問題可以描述為:f(x,c)=0,求x=x(c),這里需要求解的其實是x和c的關系。
3.3常微分方程
區(qū)別于數值問題中的常微分數方程, 這里的代數方程問題可以描述為:Dy=f(y,t,c),求y=x(t,c),一般無需初值條件。
3.4符號積分
區(qū)別于數值問題中的數值積分,這里的符號積分可以描述為:已知函數關系y=f(x),求y的不定積分。同樣的問題還有符號求導。





