MATLAB使用方法(matlab函式怎麼用)
表示式
變數
與大多數其他程式語言一樣,MATLAB® 語言提供數學表示式,但與大多數程式語言不同的是,這些表示式涉及整個矩陣。
MATLAB 不需要任何型別宣告或維度說明。當 MATLAB 遇到新的變數名稱時,它會自動建立變數,並分配適當大小的儲存。如果此變數已存在,MATLAB 會更改其內容,並根據需要分配新儲存。例如,
num_students = 25
建立一個名為 num_students
的 1×1 矩陣,並將值 25 儲存在該矩陣的單一元素中。要檢視分配給任何變數的矩陣,只需輸入變數名稱即可。
變數名稱包括一個字母,後面可以跟隨任意數目的字母、數字或下劃線。MATLAB 區分大小寫;它可以區分大寫和小寫字母。A
和 a
不是相同變數。
儘管變數名稱可以為任意長度,MATLAB 僅使用名稱的前 N
個字元(其中 N
是函式 namelengthmax
返回的數字),並忽略其餘字元。因此,很重要的一點是,應使每個變數名稱的前 N
個字元保持唯一,以便 MATLAB 能夠區分變數。
N = namelengthmax N = 63
數字
MATLAB 使用傳統的十進位制記數法以及可選的小數點和前導加號或減號來表示數字。科學記數法使用字母 e
來指定 10 次方的縮放因子。虛數使用 i
或 j
作為字尾。下面給出了合法數字的一些示例:
3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 1i -3.14159j 3e5i
MATLAB 使用 IEEE® 浮點標準規定的 long 格式在內部儲存所有數字。浮點數的有限精度約為 16 位有效小數位數,有限範圍約為 10-308 至 10 308。
以雙精度格式表示的數字的最大精度為 52 位。任何需要 52 位以上的雙精度數字都會丟失一定精度。例如,下面的程式碼因截斷而將兩個不相等的值顯示為相等:
x = 36028797018963968; y = 36028797018963972; x == y ans = 1
整數的可用精度為 8 位、16 位、32 位和 64 位。將相同數字儲存為 64 位整數會保留精度:
x = uint64(36028797018963968); y = uint64(36028797018963972); x == y ans = 0
MATLAB 軟體儲存複數的實部和虛部。該軟體根據上下文采用不同方法來處理各個部分的量值。例如,sort
函式根據量值進行排序,如果量值相等,則根據相位角度排序。
sort([3 4i, 4 3i]) ans = 4.0000 3.0000i 3.0000 4.0000i
這是由相位角度所致:
angle(3 4i) ans = 0.9273 angle(4 3i) ans = 0.6435
“等於”關係運算子 ==
要求實部和虛部相等。其他二進位制關係運算子 >
、<< code="">、
>=
和 <=< code=""> 忽略數字的虛部,而僅考慮實部。
矩陣運算子
表示式使用大家熟悉的算術運算子和優先法則。
加法 | |
- | 減法 |
| 乘法 |
| 除法 |
| 左除 |
| 冪 |
| 複共軛轉置 |
| 指定計算順序 |
陣列運算子
如果矩陣不用於線性代數運算,則成為二維數值陣列。陣列的算術運算按元素執行。這意味著,加法和減法運算對陣列和矩陣都是相同的,但乘法運算不相同。MATLAB 的乘法陣列運算表示法中包含點,也就是小數點。
運算子列表包括
加法 | |
| 減法 |
| 逐元素乘法 |
| 逐元素除法 |
| 逐元素左除 |
| 逐元素冪 |
| 非共軛陣列轉置 |
如果使用陣列乘法將丟勒的幻方矩陣自乘
A.*A
則會生成一個陣列,該陣列包含介於 1 至 16 之間的整數的平方,並且以不常見的順序排列:
ans = 256 9 4 169 25 100 121 64 81 36 49 144 16 225 196 1
構建表
陣列運算對構建表非常有用。假定 n
為列向量
n = (0:9)';
然後,
pows = [n n.^2 2.^n]
構建一個平方和 2 次冪的表:
pows = 0 0 1 1 1 2 2 4 4 3 9 8 4 16 16 5 25 32 6 36 64 7 49 128 8 64 256 9 81 512
初等數學函式逐元素處理陣列元素。因此
format short g x = (1:0.1:2)'; logs = [x log10(x)]
構建一個對數表。
logs = 1.0 0 1.1 0.04139 1.2 0.07918 1.3 0.11394 1.4 0.14613 1.5 0.17609 1.6 0.20412 1.7 0.23045 1.8 0.25527 1.9 0.27875 2.0 0.30103
函式
MATLAB 提供了大量標準初等數學函式,包括 abs
、sqrt
、exp
和 sin
。生成負數的平方根或對數不會導致錯誤;系統會自動生成相應的複數結果。MATLAB 還提供了許多其他高等數學函式,包括貝塞爾函式和伽瑪函式。其中的大多數函式都接受複數引數。有關初等數學函式的列表,請鍵入
help elfun
有關更多高等數學函式和矩陣函式的列表,請鍵入
help specfun help elmat
某些函式(例如,sqrt
和 sin
)是內建函式。內建函式是 MATLAB 核心的一部分,因此這些函式非常高效,但計算詳細資訊是不可訪問的。其他函式使用 MATLAB 程式語言實現,因此可以訪問其計算詳細資訊。
內建函式與其他函式之間存在一些差異。例如,對於內建函式,您看不到程式碼。對於其他函式,您可以看到程式碼,甚至可以根據需要修改程式碼。
一些特殊函式提供了有用的常量值。
| 3.14159265... |
| 虛數單位 G−1 |
| 與 |
| 浮點相對精度 ε=2−52 |
| 最小浮點數 2−1022 |
| 最大浮點數 (2−ε)21023 |
| 無窮大 |
| 非數字 |
通過將非零值除以零或計算明確定義的溢位(即超過 realmax
)的數學表示式,會生成無窮大。通過嘗試計算 0/0
或 Inf
-Inf
等沒有明確定義的數值的表示式,會生成非數字。
函式名稱不會保留。您可以使用如下新變數覆蓋任何函式名稱
eps = 1.e-6
並在後續計算中使用該值。可以使用以下命令恢復原始函式
clear eps
表示式示例
您已經學習了 MATLAB 表示式的幾個示例。下面是一些其他示例及生成的值:
rho = (1 sqrt(5))/2 rho = 1.6180 a = abs(3 4i) a = 5 z = sqrt(besselk(4/3,rho-i)) z = 0.3730 0.3214i huge = exp(log(realmax)) huge = 1.7977e 308 toobig = pi*huge toobig = Inf