Matlab快速入門

Matlab快速入門

Matlab快速入門


  • 1.1 桌面基礎知識
  • 1.2 矩陣和數組
  • 1.3 數組索引
  • 1.4 工作區變量
  • 1.5 文本和字符
  • 1.6 調用函數
  • 1.7 二維圖和三維圖1.7.1 線圖1.7.2 三維繪圖1.7.3 子圖


1.1 桌面基礎知識

MATLAB(矩陣實驗室),全稱為Matrix Laboratory,是MathWorks公司推出的用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境的商業數學軟件。 MATLAB具有數值分析、數值和符號計算、工程與科學繪圖、控制系統的設計與仿真、數字圖像處理、數字信號處理、財務與金融工程等功能,為眾多科學領域提供了全面的解決方案,代表了當今國際科學計算軟件的先進水平。

Matlab快速入門

桌面

桌面包括下列面板:

  • 當前文件夾-訪問您的文件
  • 命令行窗口-在命令行中輸入命令(由提示符(>>)表示)
  • 工作區-瀏覽您創建或從文件導入的數據 使用MATLAB時,可發出創建變量和調用函數的命令。;例如,通過在命令行中鍵入以下語句來創建名為 a 的變量:
<code>a = 1/<code>

MATLAB 將變量 a 添加到工作區,並在命令行窗口中顯示結果。

<code>a = 

\t1/<code>

創建更多變量。

<code>b = 2/<code>
<code>b = 

\t2/<code>
<code>c = a + b/<code> 
<code> c = 

\t3/<code>
<code>d = cos(a)/<code>
<code>d = 

\t0.5403/<code>

如果未指定輸出變量,MATLAB 將使用變量 ans(answer 的縮略形式)來存儲計算結果。

<code>sin(a)/<code>
<code>ans =

\t0.8415/<code>

如果語句以分號結束,MATLAB會執行計算,但不在命令行窗口中顯示輸出。 e = a*b; 按向上 (↑) 和向下箭頭鍵 (↓) 可以重新調用以前的命令。在空白命令行中或在鍵入命令的前幾個字符之後按箭頭鍵。例如,要重新調用命令 b = 2,請鍵入 b,然後按向上箭頭鍵。

1.2 矩陣和數組

MATLAB 是“matrix laboratory”的縮寫形式。``MATLAB® 主要用於處理整個的矩陣和數組,而其他編程語言大多逐個處理數值。 所有MATLAB` 變量都是多維數組,與數據類型無關。矩陣是指通常用來進行線性代數運算的二維數組。 數組創建 要創建每行包含四個元素的數組,請使用逗號 (,) 或空格分隔各元素。

<code>a = [1 2 3 4]/<code>
<code> a = 1×4
1 2 3 4/<code>

這種數組為行向量。 要創建包含多行的矩陣,請使用分號分隔各行。

<code>a = [1 2 3; 4 5 6; 7 8 10]/<code>
<code>a = 3×3
1 2 3
4 5 6
7 8 10/<code>

創建矩陣的另一種方法是使用 ones、zeros 或 rand 等函數。例如,創建一個由零組成的 5×1 列向量。

<code>z = zeros(5,1)/<code>
<code>z = 5×1
0
0
0
0
0/<code>

MATLAB 允許您使用單一的算術運算符或函數來處理矩陣中的所有值。 a + 10 ans = 3×3

<code>11    12    13
14 15 16
17 18 20
/<code>

要轉置矩陣,請使用單引號 ('):

<code>a'/<code>
<code> ans = 3×3
1 4 7
2 5 8

3 6 10/<code>

您可以使用 * 運算符執行標準矩陣乘法,這將計算行與列之間的內積。例如,確認矩陣乘以其逆矩陣可返回單位矩陣:

<code>p = a*inv(a)/<code>
<code>p = 3×3
1.0000 0 -0.0000
0 1.0000 0
0 0 1.0000/<code>

請注意,p 不是整數值矩陣。MATLAB 將數字存儲為浮點值,算術運算可以區分實際值與其浮點表示之間的細微差別。使用 format 命令可以顯示更多小數位數:

<code>format long
p = a*inv(a)/<code>
<code>p = 3×3

1.000000000000000 0 -0.000000000000000
0 1.000000000000000 0
0 0 0.999999999999998/<code>

使用以下命令將顯示內容重置為更短格式 format short format 僅影響數字顯示,而不影響 MATLAB 對數字的計算或保存方式。 要執行元素級乘法(而非矩陣乘法),請使用 .* 運算符:

<code>p = a.*a/<code>
<code>p = 3×3
1 4 9
16 25 36
49 64 100/<code>

乘法、除法和冪的矩陣運算符分別具有執行元素級運算的對應數組運算符。例如,計算 a 的各個元素的三次方:

<code>a.^3/<code>
<code>ans = 3×3
\t 1 8 27
64 125 216
343 512 1000/<code>

串聯 串聯是連接數組以便形成更大數組的過程。實際上,第一個數組是通過將其各個元素串聯起來而構成的。成對的方括號 [] 即為串聯運算符。

<code>A = [a,a]/<code>
<code>A = 3×6
1 2 3 1 2 3
4 5 6 4 5 6
7 8 10 7 8 10/<code>

使用逗號將彼此相鄰的數組串聯起來稱為水平串聯。每個數組必須具有相同的行數。同樣,如果各數組具有相同的列數,則可以使用分號垂直串聯。

<code>A = [a; a]/<code>
<code> A = 6×3
1 2 3
4 5 6
7 8 10
1 2 3
4 5 6
7 8 10/<code>

複數 複數包含實部和虛部,虛數單位是 -1 的平方根。

<code>sqrt(-1)/<code>
<code>ans = 0.0000 + 1.0000i/<code>

要表示複數的虛部,請使用 i 或 j。

<code>c = [3+4i, 4+3j; -i, 10j]/<code>
<code>c = 2×2 complex

3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i/<code>

1.3 數組索引

MATLAB® 中的每個變量都是一個可包含許多數字的數組。如果要訪問數組的選定元素,請使用索引。 以 4×4 幻方矩陣 A 為例:

<code>A = magic(4)/<code>
<code>A = 4×4
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1/<code>

引用數組中的特定元素有兩種方法。最常見的方法是指定行和列下標,例如

<code>A(4,2)/<code>
<code>ans = 14/<code>

另一種方法不太常用,但有時非常有用,即使用單一下標按順序向下遍歷每一列:

<code>A(8)/<code>
<code>ans = 14/<code>

使用單一下標引用數組中特定元素的方法稱為線性索引。 如果嘗試在賦值語句右側引用數組外部元素,MATLAB會引發錯誤。

<code>test = A(4,5)/<code>

Index exceeds matrix dimensions. 不過,您可以在賦值語句左側指定當前維外部的元素。數組大小會增大以便容納新元素。

<code>A(4,5) = 17/<code>
<code>ans = 3×1   
2
11
7/<code>

單獨的冒號(沒有起始值或結束值)指定該維中的所有元素。例如,選擇 A 第三行中的所有列:

<code>A(3,:)/<code>
<code> ans = 1×5
9 7 6 12 0
/<code>

此外,冒號運算符還允許您使用較通用的格式 start:step:end 創建等距向量值。

<code>B = 0:10:100/<code>
<code> B = 1×11
0 10 20 30 40 50 60 70 80 90 100/<code>

如果省略中間的步驟(如 start:end 中),``MATLAB` 會使用默認步長值 1。

1.4 工作區變量

工作區包含在 MATLAB® 中創建或從數據文件或其他程序導入的變量。例如,下列語句在工作區中創建變量 A 和 B。

<code>A = magic(4);
B = rand(3,5,2);/<code>

使用 whos可以查看工作區的內容。

<code>whos/<code>
<code>  Name      Size             Bytes  Class     Attributes

A 4x4 128 double
B 3x5x2 240 double /<code>

此外,桌面上的“工作區”窗格也會顯示變量。

Matlab快速入門

工作區變量

退出 MATLAB 後,工作區變量不會保留。使用 save 命令保存數據以供將來使用,

<code>save myfile.mat/<code>

通過保存,系統會使用 .mat 擴展名將工作區保存在當前工作文件夾中一個名為 MAT 文件的壓縮文件中。 要清除工作區中的所有變量,請使用 clear 命令。 使用 load 將 MAT 文件中的數據還原到工作區。

<code>load myfile.mat/<code>

1.5 文本和字符

當您處理文本時,將字符序列括在單引號中。可以將文本賦給變量。

<code>myText = 'Hello, world';/<code>

如果文本包含單引號,請在定義中使用兩個單引號。

<code>otherText = 'You''re right'/<code>
<code>otherText = 
'You're right'/<code>

與所有 MATLAB® 變量一樣,``myText和otherTex`t 為數組。其類或數據類型為 char(character 的縮略形式)。

<code>whos myText/<code>
<code>  Name        Size            Bytes  Class    Attributes

myText 1x12 24 char /<code>

您可以使用方括號串聯字符數組,就像串聯數值數組一樣。

<code>longText = [myText,' - ',otherText]/<code>
<code>longText = 
'Hello, world - You're right'/<code>

要將數值轉換為字符,請使用 num2str 或int2str等函數。

<code>f = 71;
c = (f-32)/1.8;
tempText = ['Temperature is ',num2str(c),'C']/<code>
<code>tempText = 
'Temperature is 21.6667C'/<code>

1.6 調用函數

MATLAB® 提供了大量執行計算任務的函數。在其他編程語言中,函數等同於子例程或方法。 要調用函數,例如 max,請將其輸入參數括在圓括號中:

<code>A = [1 3 5];
max(A)/<code>
<code>ans = 

5
/<code>

如果存在多個輸入參數,請使用逗號加以分隔:

<code>B = [10 6 4];
max(A,B)/<code>
<code>ans = 1×3

10 6 5/<code>

通過將函數賦值給變量,返回該函數的輸出:

<code>maxA = max(A)/<code>
<code>maxA = 5/<code>

如果存在多個輸出參數,請將其括在方括號中:

<code>[maxA,location] = max(A)/<code>
<code>maxA = 5
location = 3/<code>

將任何字符輸入括在單引號中:

<code>disp('hello world')/<code>
<code>hello world/<code>

要調用不需要任何輸入且不會返回任何輸出的函數,請只鍵入函數名稱:

<code>clc/<code>

clc函數清空命令行窗口。

1.7 二維圖和三維圖

1.7.1 線圖

要創建二維線圖,請使用 plot 函數。例如,繪製從 0 到 之間的正弦函數值:

<code>x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)/<code>
Matlab快速入門

二維線圖

可以標記軸並添加標題。

<code>xlabel('x')
ylabel('sin(x)')
title('Plot of the Sine Function')/<code>
Matlab快速入門

二維線圖

通過向 plot 函數添加第三個輸入參數,您可以使用紅色虛線繪製相同的變量。

<code>plot(x,y,'r--')/<code>
Matlab快速入門

二維線圖

'r--' 為線條設定。每個設定可包含表示線條顏色、樣式和標記的字符。標記是在繪製的每個數據點上顯示的符號,例如,+、o 或 。例如,'g:' 請求繪製使用 * 標記的綠色點線。 請注意,為第一幅繪圖定義的標題和標籤不再被用於當前的圖窗窗口中。默認情況下,每次調用繪圖函數、重置座標區及其他元素以準備新繪圖時,``MATLAB`® 都會清空圖窗。 要將繪圖添加到現有圖窗中,請使用 hold on。在使用 hold off 或關閉窗口之前,當前圖窗窗口中會顯示所有繪圖。

<code>x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

hold on

y2 = cos(x);
plot(x,y2,':')
legend('sin','cos')

hold off/<code>
Matlab快速入門

二維線圖

1.7.2 三維繪圖

三維圖通常顯示一個由帶兩個變量的函數(即 z = f (x,y))定義的曲面圖。 要計算 z,請首先使用 meshgrid 在此函數的域中創建一組 (x,y) 點。

<code>[X,Y] = meshgrid(-2:.2:2);                                
Z = X .* exp(-X.^2 - Y.^2);/<code>

然後,創建曲面圖。

<code>surf(X,Y,Z)/<code>
Matlab快速入門

三維繪圖

surf 函數及其伴隨函數 mesh 以三維形式顯示曲面圖。surf 使用顏色顯示曲面圖的連接線和麵。mesh 生成僅以顏色標記連接定義點的線條的線框曲面圖。

1.7.3 子圖

使用 subplot 函數可以在同一窗口的不同子區域顯示多個繪圖。 subplot 的前兩個輸入表示每行和每列中的繪圖數。第三個輸入指定繪圖是否處於活動狀態。例如,在圖窗窗口的 2×2 網格中創建四個繪圖。

<code>t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X); title('X');
subplot(2,2,2); mesh(Y); title('Y');
subplot(2,2,3); mesh(Z); title('Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');/<code>
Matlab快速入門

子圖


分享到:


相關文章: