matlab入門學習系列之表示式 變數運算子

2021-10-09 22:21:38 字數 3929 閱讀 5694

目錄變數

矩陣運算子

陣列運算子 函式

表示式示例

與大多數其他程式語言一樣,matlab® 語言提供數學表示式,但與大多數程式語言不同的是,這些表示式涉及整個矩陣。

matlab 不需要任何型別宣告或維度說明。當 matlab 遇到新的變數名稱時,它會自動建立變數,並分配適當大小的儲存。如果此變數已存在,matlab 會更改其內容,並根據需要分配新儲存。例如,

num_students = 25

建立乙個名為num_students的 1×1 矩陣,並將值 25 儲存在該矩陣的單一元素中。要檢視分配給任何變數的矩陣,只需輸入變數名稱即可。

變數名稱包括乙個字母,後面可以跟隨任意數目的字母、數字或下劃線。matlab 區分大小寫;它可以區分大寫和小寫字母。aa不是相同變數。

儘管變數名稱可以為任意長度,matlab 僅使用名稱的前n個字元(其中n是函式namelengthmax返回的數字),並忽略其餘字元。因此,很重要的一點是,應使每個變數名稱的前n個字元保持唯一,以便 matlab 能夠區分變數。

n = namelengthmax

n = 63

表示式使用大家熟悉的算術運算子和優先法則。

+加法

減法*乘法

/除法

\左除

^

'

復共軛轉置

( )

指定計算順序

如果矩陣不用於線性代數運算,則成為二維數值陣列。陣列的算術運算按元素執行。這意味著,加法和減法運算對陣列和矩陣都是相同的,但乘法運算不相同。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 提供了大量標準初等數學函式,包括abssqrtexpsin。生成負數的平方根或對數不會導致錯誤;系統會自動生成相應的複數結果。matlab 還提供了許多其他高等數學函式,包括貝塞爾函式和 gamma 函式。其中的大多數函式都接受複數引數。有關初等數學函式的列表,請鍵入

help elfun

有關更多高等數學函式和矩陣函式的列表,請鍵入

help specfun

help elmat

某些函式(例如,sqrtsin)是內建函式。內建函式是 matlab 核心的一部分,因此這些函式非常高效,但計算詳細資訊是不可訪問的。其他函式使用 matlab 程式語言實現,因此可以訪問其計算詳細資訊。

內建函式與其他函式之間存在一些差異。例如,對於內建函式,您看不到**。對於其他函式,您可以看到**,甚至可以根據需要修改**。

一些特殊函式提供了有用的常量值。

pi

3.14159265...

i

虛數單位 g−1

j

i相同

eps

浮點相對精度 ε=2−52

realmin

最小浮點數 2−1022

realmax

最大浮點數 (2−ε)21023

inf

無窮大nan

非數字

通過將非零值除以零或計算明確定義的溢位(即超過realmax)的數學表示式,會生成無窮大。通過嘗試計算0/0inf-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

深度學習 MATLAB 入門系列(二)

本系列來自 mathworks load a pre trained,deep,convolutional network alex alexnet layers alex.layers modify the network to use five categories layers 23 full...

MATLAB入門學習(五)

現在,我們來學畫圖吧。繪製函式影象最常用的命令是plot plot x,y,s x,y為同維向量,繪製分別以x為橫座標,y為縱座標的曲線 如果x y 是矩陣的話則會繪製多條曲線,用不同顏色表示 s是可選項,用於圖形修飾 具體有那些看help plot 裡面就可以了 另外還可以直接plot x,s 這...

Matlab入門學習(程式設計)

一 迴圈 for,while for迴圈 for i begin step end endwhile迴圈 while condition end二 分枝 if,if else,switch case if condition else endswitch var case value1 case v...