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