MATLAB入門
1.輸入命令
(1).可以通過在命令行窗口中 MATLAB 提示符 (>>) 后輸入命令,然后按 Enter 鍵來執(zhí)行命令。
例:3*5
>> 3*5 %回車后顯示答案
?
ans =
?
15
(2).除非另有指定,否則 MATLAB 會將計算結(jié)果存儲在一個名為 ans 的變量中。
例:將 3*5 的計算結(jié)果賦給一個名為 m 的變量
>> m = 3*5
?
m =
?
15
(3). MATLAB 中的等號為賦值運算符,表示等號右側(cè)的表達式賦給左側(cè)的變量。因此,當輸入 x = 3+4 時,MATLAB 首先會計算 3+4,然后再將結(jié)果 賦給變量 x。
例:輸入m = m + 1,會根據(jù)記錄中m的值+1后重新賦值給m。
>> m = m + 1
?
m =
?
16
工作區(qū)窗口(右側(cè))顯示了當前位于工作區(qū)中的所有變量。
(4).在命令的末尾添加分號(英文的分號)將抑制輸出,但仍會執(zhí)行該命令。當您輸入命令而沒有以分號結(jié)尾時,MATLAB 將會在命令行窗口中顯示結(jié)果。
例:輸入 k = 8 - 2;
>> k = 8 - 2; %不會顯示求得答案,但是會在工作區(qū)記錄。
(5).可以按鍵盤上的向上箭頭鍵重新調(diào)用以前的命令。請注意,要執(zhí)行此操作,命令行窗口必須為活動窗口。
(6).當在命令提示符下僅輸入變量名稱時,MATLAB 將會返回該變量的當前值。例:
>> y
?
y =
?
8
2.在變量中存儲數(shù)據(jù)
(1).變量名命名規(guī)則:以字母開頭,并且僅包含字母、數(shù)字和下劃線 (_)。如果您使用無效的變量名稱,MATLAB 會顯示建議的更正內(nèi)容。您可以使用建議的命令、對其進行修改或按 Esc 鍵刪除建議。
注意:matlab嚴格區(qū)分大小寫
(2).輸入clear可以清除所有變量,clc可以清除命令行窗口。
3.使用內(nèi)置的函數(shù)和常量
(1).MATLAB 包含內(nèi)置的常量,比如pi表示 π。
(2).MATLAB 包含許多內(nèi)置的函數(shù),例如 abs(計算絕對值)和 eig(計算特征值(及把數(shù)變?yōu)樾?shù)點后四位數(shù)))。
>> y = sin(pi/2)
?
y =
?
1
例:
使用 sqrt 函數(shù)計算 -9 的平方根。將結(jié)果賦給一個名為 z 的變量。
>> z=sqrt(-9)
?
z =
?
0.0000 + 3.0000i
注意:i代表虛數(shù)單位,是MATLAB的一個內(nèi)置常量。
二. 向量和矩陣
1.輸入數(shù)組
(1).所有 MATLAB 變量都是數(shù)組,這意味著每個變量均可以包含多個元素。單個稱為標量的數(shù)值實際上是一個 1×1 數(shù)組,也即它包含 1 行 1 列。
例:創(chuàng)建一個名為 x 并且值為 4 的變量。
>> x = 4
?
x =
?
4
(2).可以使用方括號(英文括號)創(chuàng)建包含多個元素的數(shù)組。
例:創(chuàng)建一個名為 x 的數(shù)組,其中兩個元素位于同一行中: 7 和 9。
>> x = [7 9] %一行數(shù)組之間可以用空格或者,隔開
?
x =
?
7 9
(3).用分號分隔數(shù)值時,MATLAB 會創(chuàng)建一個列向量 (n×1)。
例:創(chuàng)建一個名為 x 的數(shù)組,其中兩個元素位于同一列中: 7 和 9
>> x = [7;9]
?
x =
?
7
9
(4).可以組合使用空格和分號來創(chuàng)建矩陣,即包含多行多列的數(shù)組。輸入矩陣時,必須逐行輸入它們。
例:試著創(chuàng)建一個名為 x 的矩陣,其中包含的值如下所示。
5 6 7
8 9 10
>> x = [5 6 7; 8 9 10]
?
x =
?
5 6 7
8 9 10
(5).在 MATLAB 中,可以在方括號內(nèi)執(zhí)行計算。
例:
>> x = [abs(-4) 4^2]
x =
4 16
2.創(chuàng)建等間距向量
(1).我們有時會輸入一些這樣的數(shù)組。
例:
x = [1 2 3]
x =
?
1 2 3
(2).但是,對于長向量,輸入單個數(shù)值是不實際的。可用來創(chuàng)建等間距向量的替代便捷方法是使用 : 運算符并僅指定起始值和最終值:first:last。
注意:運算符使用默認的間距 1
例如:上面的案例就可以寫為
>> x = 1:3
?
x =
?
1 2 3
(3).可以指定自己的間距,如下所示。
>> x = 20:2:26
x =
20 22 24 26
(4).如果知道向量中所需的元素數(shù)目(而不是每個元素之間的間距),則可以改用 linspace 函數(shù):linspace(*first*,*last*,*number_of_elements*)。注意,請使用逗號 (,) 分隔 linspace 函數(shù)的輸入。
例:
>> x = linspace(0,1,5)
x =
0 0.250 0.500 0.750 1.000
(5).可以用 ' 將行向量轉(zhuǎn)換為列向量。
例:
>> x = 1:3;
>> x = x'
x =
1
2
3
(6).綜合案例:
在一條命令中創(chuàng)建行向量并將其全部轉(zhuǎn)置來創(chuàng)建列向量。注意此處使用圓括號來指定運算的順序。
>> x = (1:2:5)'
x =
1
3
5
3.數(shù)組創(chuàng)建函數(shù)
(1).MATLAB 包含許多函數(shù),可幫助創(chuàng)建常用的矩陣,例如隨機數(shù)矩陣(rand)。
例:
>> x = rand(2) %rand(2) 命令中的 2 指定輸出將為一個 2×2 的隨機數(shù)矩陣。
x =
0.8147 0.1270
0.9058 0.9134
(2).許多矩陣創(chuàng)建函數(shù)允許您輸入一個數(shù)值來創(chuàng)建方陣 (n×n),或者輸入兩個數(shù)值來創(chuàng)建非方陣。
例:
>> x = rand(2,3)
x =
0.6324 0.2785 0.9575
0.0975 0.5469 0.9649
(3).使用 zeros 函數(shù)創(chuàng)建一個包含 6 行 3 列 (6×3) 的全零矩陣。將結(jié)果賦給名為 x 的變量。
>> x = zeros(6,3)
?
x =
?
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
三.導(dǎo)入數(shù)據(jù)
(1).可以使用 save 命令將工作區(qū)中的變量保存到稱為 MAT 文件的 MATLAB 特定格式文件中。
>> save foo x
以上命令將名為 x 的變量保存到名為 foo.mat 的 MAT 文件中。
(2).可以使用 load 命令從 MAT 文件加載變量。
>> load foo %把數(shù)據(jù)從foo中加載出來
四. 索引和修改數(shù)組
1.對數(shù)組進行索引
(1).可以使用行、列索引從數(shù)組中提取值。
>> x = A(5,7);
此語法將會提取 A 的第 5 行第 7 列的值,然后將結(jié)果賦給變量 x。
(2).可以使用 MATLAB 關(guān)鍵字 end,作為行或列索引來引用最后一個元素。
>> x = A(end,2);
(3).可以將算術(shù)運算與關(guān)鍵字 end 結(jié)合使用。例如:
>> x = A(end-1,end-2)
2.提取多個元素
(1).用作索引時,冒號運算符 (:) 可指代該維度中的所有元素。以下語法
>> x = A(2,:)
會創(chuàng)建一個包含 A 中第 2 行上所有元素的行向量。
(2).冒號運算符可以引用某個值范圍。以下語法會創(chuàng)建一個包含矩陣 A 的第 1 行、第 2 行和第 3 行所有元素的矩陣。
>> x = A(1:3,:)
(3).單個索引值可用于引用向量元素。例如,以下語句
>> x = v(3)
會返回向量 v 的第 3 個元素(當 v 為行向量或列向量時)。
(4).單個索引值范圍可用于引用向量元素的子集。例如
>> x = v(3:end)
返回向量 v 的一個子集,其中包含從第三個到最后一個元素范圍內(nèi)的所有元素。
3.更改數(shù)組中的值
(1).字符來提取整列數(shù)據(jù)。
例:創(chuàng)建一個名為 v2 并且包含 data 的最后一列元素的向量。
>> v2 = data(:,end)
(2).可以通過組合使用索引與賦值來修改變量的元素。
A(2,5) = 11
例:試著將 v2 中的第一個元素從 NaN 更改為 0.5。
>> v2(1) = 0.5
例:現(xiàn)在,試著將 data 的第一行最后一列的值更改為 0.5。
>> data(1,end) = 0.5
五. 數(shù)組計算
(1).可以將一個標量值與數(shù)組中的所有元素相加。
例:將 2 與 x 的每個元素相加,然后將結(jié)果存儲在名為 y 的變量中。
>> y = x + 2
(2).可以將任意兩個大小相同的數(shù)組相加。
例:創(chuàng)建一個向量 z,它是向量 x 和 y 的和。
>> z = x + y
(3).可以將數(shù)組中的所有元素與某個標量相乘或相除。
例:a:創(chuàng)建一個變量 z,其值為 x*2。
b:創(chuàng)建一個變量 y,其值為 x/3。
>> z = 2*x
>> y = x/3
(4).MATLAB 中的基本統(tǒng)計函數(shù)可應(yīng)用于某個向量以生成單個輸出??梢允褂?max 函數(shù)來確定向量的最大值。
例:試著創(chuàng)建一個變量 xMax,其值為 x 向量的最大值。
>> xMax = max(x)
(5).MATLAB 的函數(shù)可在單個命令中對整個向量或值數(shù)組執(zhí)行數(shù)學(xué)運算。
例:使用sqrt函數(shù)對x數(shù)組進行開方運算。
>> xSqrt = sqrt(x)
(6)運算符執(zhí)行矩陣乘法。因此,如果您使用 * 將兩個大小相同的向量相乘,則由于內(nèi)部維度不一致,將會收到一條錯誤消息。
>> z = [3 4] * [10 20]
用于矩陣乘法的維度不正確。請檢查并確保第一個矩陣中的列數(shù)與第二個矩陣中的行數(shù)匹配。要執(zhí)行按元素相乘,請使用 '.*'。
而 .* 運算符執(zhí)行按元素乘法,允許您將兩個大小相同的數(shù)組的對應(yīng)元素相乘。
>> z = [3 4] .* [10 20]
z =
30 80
六.調(diào)用函數(shù)
(1).size 函數(shù)可以應(yīng)用于數(shù)組,以生成包含數(shù)組大小的單個輸出變量。
例:試著創(chuàng)建一個名為 dsize 的變量,其值為 data 變量的大小。
>> dsize = size(data)
?
dsize =
?
7 4
(2).size 函數(shù)可以應(yīng)用于矩陣,以生成單個輸出變量或兩個輸出變量。使用方括號 ( [ ] ) 獲取多個輸出。
例:創(chuàng)建變量 dr 和 dc,其中分別包含變量 data 的行數(shù)和列數(shù)。
>> [dr,dc] =size(data)
?
dr =
?
7
?
?
dc =
?
4
(3).可以使用 max 函數(shù)確定向量的最大值及其對應(yīng)的索引值。max 函數(shù)的第一個輸出為輸入向量的最大值。執(zhí)行帶兩個輸出的調(diào)用時,第二個輸出為索引值。
>> [xMax,idx] = max(x)
例:創(chuàng)建變量 vMax 和 ivMax,其中分別包含 v2 向量的最大值和對應(yīng)的索引值。
>> [vMax,ivMax] = max(v2)
?
vMax =
?
10.1570
?
?
ivMax =
?
5
七.獲取幫助
(1).可以輸入
>> doc fcnName
可以獲取任何 MATLAB 函數(shù)的相關(guān)信息。
例:輸入命令 doc randi 以打開 randi 函數(shù)的文檔頁。
八.繪制數(shù)據(jù)圖
1.繪制向量圖
(1).可以使用 plot 函數(shù)在一張圖上繪制兩個相同長度的向量。
>> plot(x,y)
例:
>> a = [1:1:50];
>> b = [cos(a)];
>> plot(a,b)
(2).plot 函數(shù)接受一個附加參數(shù),該參數(shù)讓您能夠在單引號中使用各種符號來指定顏色、線型和標記樣式。
>> plot(x,y,'r--o')
以上命令將會繪制一條紅色 (r) 虛線 (--),并使用圓圈 (o) 作為標記。您可以在線條設(shè)定的文檔中了解有關(guān)可用符號的詳細信息。
(3).要在一張圖上先后繪制兩條線,請使用 hold on 命令保留之前的繪圖,然后添加另一條線。也可以使用 hold off 命令返回到默認行為。
(4).輸入 close all 命令以關(guān)閉所有打開的圖窗窗口。
(5).單獨繪制一個向量時,MATLAB 會使用向量值作為 y 軸數(shù)據(jù),并將 x 軸數(shù)據(jù)的范圍設(shè)置為從 1 到 n(向量中的元素數(shù)目)。
>> b = [cos(a)];
>> plot(b)
(6).plot 函數(shù)接受可選的附加輸入,這些輸入由一個屬性名稱和一個關(guān)聯(lián)的值組成。
>> plot(y,'LineWidth',5)
以上命令將繪制一條粗線。
例:試著繪制 b,線寬為 3。
plot(b,'LineWidth',3)
(7).使用 plot 函數(shù)時,可在繪圖參數(shù)和線條設(shè)定符之后添加屬性名稱-屬性值對組。
>> plot(x,y,'ro-','LineWidth',5)
例:試著繪制 b(y 軸)對 a(x 軸)的圖,使用紅色 (r) 圓圈 (o) 標記,線寬為 4。
plot(a,b,'LineWidth',4)
2.編寫繪圖注釋
(1).可以使用繪圖注釋函數(shù)(例如 title)在繪圖中添加標簽。這些函數(shù)的輸入是一個字符串。MATLAB 中的字符串是用單引號 (') 引起來的。
>> title('Plot Title')
(2).使用 ylabel 函數(shù)添加y標簽 'Hello world'。
xlabel添加x標簽
浙公網(wǎng)安備 33010602011771號