matlab函數(shù)使用方法與如何調(diào)用?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
MATLAB是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于數(shù)據(jù)分析、無(wú)線通信、深度學(xué)習(xí)、圖像處理與計(jì)算機(jī)視覺(jué)、信號(hào)處理、量化金融與風(fēng)險(xiǎn)管理、機(jī)器人,控制系統(tǒng)等領(lǐng)域。
MATLAB是matrix&laboratory兩個(gè)詞的組合,意為矩陣工廠(矩陣實(shí)驗(yàn)室),軟件主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C、Fortran)的編輯模式。
MATLAB和Mathematica、Maple并稱(chēng)為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類(lèi)科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來(lái)解算問(wèn)題要比用C,F(xiàn)ORTRAN等語(yǔ)言完成相同的事情簡(jiǎn)捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++,JAVA的支持。
20世紀(jì)70年代,美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任Cleve Moler為了減輕學(xué)生編程的負(fù)擔(dān),用FORTRAN編寫(xiě)了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市場(chǎng)。到20世紀(jì)90年代,MATLAB已成為國(guó)際控制界的標(biāo)準(zhǔn)計(jì)算軟件。MATLAB:統(tǒng)一了用于一維、二維與三維數(shù)值積分的函數(shù)并提升了基本數(shù)學(xué)和內(nèi)插函數(shù)的性能MATLAB Compiler:可以下載 MATLAB Compiler Runtime (MCR),簡(jiǎn)化編譯后的程序和組件的分發(fā)Image Processing Toolbox:通過(guò)亮度指標(biāo)優(yōu)化進(jìn)行自動(dòng)圖像配準(zhǔn)Statistics Toolbox:增強(qiáng)了使用線性、廣義線性和非線性回歸進(jìn)行擬合、預(yù)測(cè)和繪圖的界面System Identification Toolbox:識(shí)別連續(xù)時(shí)間傳遞函數(shù)2022年4月6日消息,MATLAB R2022a 原生 Apple Silicon 平臺(tái)開(kāi)放測(cè)試版是 MATLAB 的早期版本,適用于 Apple Silicon Mac 用戶,以評(píng)估現(xiàn)有代碼和應(yīng)用程序的執(zhí)行,并測(cè)試第三方集成和附加組件。此測(cè)試版將持續(xù)到2022年8月31日。
MATLAB 是一種互動(dòng)式數(shù)值計(jì)算環(huán)境,可以用它進(jìn)行數(shù)值計(jì)算、數(shù)據(jù)可視化、算法開(kāi)發(fā)等。在 MATLAB 中,函數(shù)是一種重要的工具,用于封裝可重復(fù)使用的代碼以及實(shí)現(xiàn)復(fù)雜算法。以下是 MATLAB 函數(shù)的使用方法:
1. 函數(shù)的創(chuàng)建:使用 MATLAB 編輯器或文本編輯器創(chuàng)建一個(gè)新的 .m 文件,文件名必須與函數(shù)名相同。在 .m 文件中編寫(xiě)函數(shù)代碼,函數(shù)以 "function" 關(guān)鍵字開(kāi)始,后面跟著函數(shù)名和輸入?yún)?shù)列表,最后是函數(shù)體和輸出參數(shù)列表。例如:
```matlab
function [output1, output2] = myFunction(input1, input2)
% 函數(shù)注釋
% input1: 輸入?yún)?shù)1
% input2: 輸入?yún)?shù)2
% output1: 輸出參數(shù)1
% output2: 輸出參數(shù)2
% 函數(shù)體
output1 = input1 + input2;
output2 = input1 - input2;
```
2. 函數(shù)的調(diào)用:在 MATLAB 命令窗口或其他腳本或函數(shù)中,可以使用函數(shù)名和輸入?yún)?shù)來(lái)調(diào)用函數(shù)。例如:
```matlab
x = 3;
y = 4;
[output1, output2] = myFunction(x, y);
```
在以上示例代碼中,將輸入?yún)?shù) x 和 y 傳遞給函數(shù) "myFunction",并將函數(shù)的輸出存儲(chǔ)在 output1 和 output2 變量中。
3. 函數(shù)的幫助文檔:使用 "help" 命令或 "doc" 命令可以查看函數(shù)的幫助文檔。例如:
```matlab
help myFunction
doc myFunction
```
以上命令將顯示函數(shù) "myFunction" 的幫助文檔,包括函數(shù)的輸入?yún)?shù)、輸出參數(shù)、功能描述以及示例代碼等信息。
需要注意的是,MATLAB 函數(shù)的使用方法還包括函數(shù)的調(diào)試、性能優(yōu)化、函數(shù)庫(kù)的管理等方面。因此,在編寫(xiě)和使用 MATLAB 函數(shù)時(shí),需要遵循一些最佳實(shí)踐,如編寫(xiě)清晰的函數(shù)注釋、使用有效的變量名、避免全局變量等。
您可以使用命令語(yǔ)法或函數(shù)語(yǔ)法來(lái)調(diào)用 MATLAB® 函數(shù),如下所述。
命令語(yǔ)法
此語(yǔ)法中的函數(shù)調(diào)用包含函數(shù)名稱(chēng),后跟一個(gè)或多個(gè)由空格分隔的參數(shù):
functionname arg1 arg2 ... argn
命令語(yǔ)法不允許您獲取函數(shù)可能返回的任何值。嘗試通過(guò)命令語(yǔ)法將函數(shù)輸出賦給變量將會(huì)生成錯(cuò)誤。請(qǐng)改用函數(shù)語(yǔ)法。
命令語(yǔ)法示例:
save mydata.mat x y z
import java.awt.Button java.lang.String
參數(shù)被視為字符向量。請(qǐng)參閱參數(shù)傳遞中的以下示例。
函數(shù)語(yǔ)法
此語(yǔ)法中的函數(shù)調(diào)用包含函數(shù)名稱(chēng),后跟一個(gè)或多個(gè)由逗號(hào)分隔并括在圓括號(hào)中的參數(shù):
functionname(arg1, arg2, ..., argn)
您可以將函數(shù)的輸出賦給一個(gè)或多個(gè)輸出值。賦給多個(gè)輸出變量時(shí),請(qǐng)用逗號(hào)或空格分隔這些變量,并將它們括在方括號(hào) ([]) 中:
[out1,out2,...,outn] = functionname(arg1, arg2, ..., argn)
函數(shù)語(yǔ)法示例:
copyfile('srcfile', '..\mytests', 'writable')
[x1,x2,x3,x4] = deal(A{:})
參數(shù)按值傳遞給函數(shù)。請(qǐng)參閱參數(shù)傳遞中的以下示例。
參數(shù)傳遞
使用命令語(yǔ)法調(diào)用函數(shù)時(shí),MATLAB 將參數(shù)作為字符向量進(jìn)行傳遞。使用函數(shù)語(yǔ)法時(shí),參數(shù)按值進(jìn)行傳遞。
以下示例首先為 A 賦值,然后對(duì)該變量調(diào)用 disp 以顯示所傳遞的值。使用命令語(yǔ)法調(diào)用 disp 會(huì)傳遞變量名稱(chēng) 'A':
A = pi;
disp A
A
而函數(shù)語(yǔ)法會(huì)傳遞賦給 A 的值:
A = pi;
disp(A)
3.1416
以下示例將兩個(gè)字符向量傳遞給 strcmp 進(jìn)行比較。使用命令語(yǔ)法調(diào)用該函數(shù)會(huì)比較變量名稱(chēng) 'str1' 和 'str2':
str1 = 'one'; str2 = 'one';
strcmp str1 str2
ans =
0 (unequal)
而函數(shù)語(yǔ)法會(huì)比較賦給這些變量的值 'one' 和 'one':
str1 = 'one'; str2 = 'one';
strcmp(str1, str2)
ans =
1 (equal)
傳遞字符向量
使用函數(shù)語(yǔ)法將字符向量傳遞給函數(shù)時(shí),您必須將字符向量用單引號(hào)引起來(lái) ('text')。例如,要?jiǎng)?chuàng)建一個(gè)稱(chēng)為 myapptests 的新文件夾,請(qǐng)使用
mkdir('myapptests')
但是,包含字符向量的變量不需要用引號(hào)引起來(lái):
folder = 'myapptests';
mkdir(folder)