官术网_书友最值得收藏!

1.2 基本運算

MATLAB的產(chǎn)生是由矩陣運算推出的,因此矩陣和數(shù)組運算是MATLAB最基本、最重要的功能.本章主要介紹MATLAB的數(shù)據(jù)類型,以及矩陣和數(shù)組的基本運算.

1.2.1 數(shù)據(jù)類型

MATLAB R2023定義了15種基本的數(shù)據(jù)類型,包括整型、浮點型、字符型和邏輯型等,用戶也可以定義自己的數(shù)據(jù)類型.MATLAB內(nèi)部的所有數(shù)據(jù)類型都是按照數(shù)組的形式進行存儲和運算的.

數(shù)值型包括整數(shù)和浮點數(shù),其中整數(shù)包括有符號數(shù)和無符號數(shù),浮點數(shù)包括單精度型和雙精度型.在默認(rèn)情況下,MATLAB R2023默認(rèn)將所有數(shù)值都按照雙精度浮點數(shù)類型來存儲和操作,用戶如果要節(jié)省存儲空間,可以使用不同的數(shù)據(jù)類型.

1.常數(shù)和變量

1)常數(shù).MATLAB的常數(shù)采用十進制表示,可以用帶小數(shù)點的形式直接表示,也可以用科學(xué)計數(shù)法表示,數(shù)值的表示范圍是10-309~10309.

2)變量.變量是數(shù)值計算的基本單元,使用MATLAB變量時無須先定義,其名稱是第一次合法出現(xiàn)時的名稱,因此使用起來很便捷.

(1)變量的命名規(guī)則

●變量名區(qū)分字母的大小寫.例如“A”和“a”是不同的變量.

●變量名不能超過63個字符,第63個字符后的字符被忽略.

●變量名必須以字母開頭,變量名的組成可以是任意字母、數(shù)字或者下劃線,但不能有空格和標(biāo)點符號.

●關(guān)鍵字(如if、while等)不能作為變量名.

在MATLAB R2023中,所有標(biāo)識符(包括函數(shù)名、文件名)都遵循變量名的命名規(guī)則.

(2)特殊變量

MATLAB有一些自己的特殊變量,是由系統(tǒng)預(yù)先自動定義的,當(dāng)MATLAB啟動時駐留在內(nèi)存中,常用特殊變量如表1-4所示.

表1-4 常用特殊變量

2.整數(shù)和浮點數(shù)

(1)整數(shù)

MATLAB R2023提供了8種內(nèi)置的整數(shù)類型,為了在使用時提高運行速度和存儲空間,應(yīng)該盡量使用字節(jié)少的數(shù)據(jù)類型,使用類型轉(zhuǎn)換函數(shù)可以將各種整數(shù)類型強制相互轉(zhuǎn)換.表1-5中列出了各種整數(shù)類型的數(shù)值范圍和類型轉(zhuǎn)換函數(shù).

表1-5 整數(shù)的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

(2)浮點數(shù)

浮點數(shù)包括單精度型(single)和雙精度型(double),其中雙精度型為MATLAB默認(rèn)的數(shù)據(jù)類型.表1-6中列出了各種浮點數(shù)的數(shù)值范圍和類型轉(zhuǎn)換函數(shù).

表1-6 浮點數(shù)的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

3.復(fù)數(shù)

MATLAB用特殊變量“i”和“j”表述虛數(shù)的單位,因此,注意在編程時不要和其他變量混淆.

復(fù)數(shù)的產(chǎn)生可以有幾種方式:

z=a+b*i或z=a+b*j.

z=a+bi或z=a+bj(當(dāng)b為常數(shù)時).

z=r*exp(i*theta),其中相角theta以弧度為單位,復(fù)數(shù)z的實部a=r*cos(theta);復(fù)數(shù)z的虛部b=r*sin(theta).

z=complex(ab).

MATLAB中關(guān)于復(fù)數(shù)的運算函數(shù)如表1-7所示.

表1-7 復(fù)數(shù)的運算函數(shù)

1.2.2 矩陣和數(shù)組的運算

1.矩陣的輸入

下面介紹幾種矩陣的常用輸入方法.

(1)直接輸入

這是一種最方便、最直接的方法,它適用于對象維數(shù)較少的矩陣.矩陣的輸入應(yīng)遵循以下基本規(guī)則:

●矩陣元素應(yīng)用方括號“[]”括住.

●同行內(nèi)的元素間用逗號“,”或空格隔開.

●行與行之間用分號“;”或回車鍵隔開.

●元素可以是數(shù)值或表達式.

例1-5 直接輸入命令創(chuàng)建矩陣

MATLAB命令為:

運行結(jié)果為:

(2)用矩陣編輯器輸入

矩陣編輯器適用于維數(shù)較大的矩陣.在調(diào)用矩陣編輯器之前必須先定義一個變量,無論是一個數(shù)值還是一個矩陣均可.輸入步驟如下:

●在命令行窗口創(chuàng)建變量A.

●在工作區(qū)可以看到多了一個變量A,雙擊變量A就可打開矩陣編輯器.

●選中元素可以直接修改元素的值,修改完畢后單擊關(guān)閉按鈕,這時變量就被定義并保存了.

(3)用矩陣函數(shù)生成矩陣

除了逐個輸入元素生成所需矩陣外,MATLAB還提供了大量的函數(shù)來創(chuàng)建一些特殊的矩陣.

1)生成對角矩陣:

A=diag(vk)生成主對角線方向上的第k(整數(shù))層元素是向量v的矩陣.規(guī)定:當(dāng)k=0時,它表示矩陣的主對角線;當(dāng)k>0時,它表示主對角線的平行位置上方的第k層;當(dāng)k<0時,它表示主對角線的平行位置下方的第|k|層.

v=diag(Ak)提取矩陣A中主對角線方向上第k(整數(shù))層元素,得到的是向量v.

2)魔方矩陣(矩陣中每行、每列及兩條對角線上的元素和都相等):magic(n)生成n階魔方矩陣,其中n為大于2的正整數(shù).

3)隨機矩陣:rand(mn)隨機生成服從均勻分布的m×n矩陣,其元素為0~1之間的數(shù).

此外,還有零矩陣、單位矩陣、元素全為1的矩陣等特殊矩陣,函數(shù)功能見表2-5.

表1-8 常用的矩陣函數(shù)及其功能

例1-6 利用函數(shù)生成矩陣

MATLAB命令為:

運行結(jié)果為:

例1-7 (1)生成一個3階魔方矩陣A;(2)生成一個4階單位矩陣B.

MATLAB命令為:

運行結(jié)果為:

例1-8 輸入矩陣

MATLAB命令為:

運行結(jié)果為:

例1-9 隨機生成含有5個元素的行向量.

MATLAB命令為:

運行結(jié)果為:

例1-10 隨機生成數(shù)值在10~30之間的含有5個元素的行向量.

MATLAB命令為:

運行結(jié)果為:

例1-11 生成三對角矩陣

MATLAB命令為:

運行結(jié)果為:

(4)通過文件生成

有時需要處理一些沒有規(guī)律的數(shù)據(jù),如果在命令行窗口輸入,清除后再次使用時需要重新輸入,這就增加了工作量.為解決此類問題,MATLAB提供了兩種解決方案:一種方案是直接將數(shù)據(jù)作為矩陣輸入到M文件中;另一種方案是將數(shù)據(jù)作為變量保存到MAT文件中.

用M文件保存矩陣的方法是在M文件編輯器中按照正常輸入矩陣的方法輸入數(shù)據(jù),然后將其保存成M文件.使用時在命令行窗口直接輸入文件名即可.

例1-12 用M文件保存矩陣

在M文件編輯器中輸入以下矩陣,保存成文件shuju1.m:

在命令行窗口直接輸入文件名將顯示矩陣信息:

(5)數(shù)組生成

數(shù)組作為特殊的矩陣,即1×n矩陣或n×1矩陣,除了可以作為普通的矩陣輸入外,還有其他生成方式.

1)使用from:step:to生成數(shù)組,當(dāng)step省略時,表示步長step=1.當(dāng)step為負數(shù)時,可以創(chuàng)建降序的數(shù)組.

例1-13 使用from:step:to創(chuàng)建數(shù)組.

MATLAB命令為:

運行結(jié)果為:

2)使用linspace和logspace函數(shù)生成數(shù)組.linspace用來生成線性等分?jǐn)?shù)組,logspace用來生成對數(shù)等分?jǐn)?shù)組.logspace函數(shù)可以用于對數(shù)坐標(biāo)的繪制.

命令格式如下:

2.矩陣和數(shù)組的算術(shù)運算

矩陣的運算規(guī)則是按照線性代數(shù)運算法則定義的,但是有著明確而嚴(yán)格的數(shù)學(xué)規(guī)則,而數(shù)組運算是按數(shù)組的元素逐個進行的.

(1)矩陣運算

矩陣的基本運算包括加法(+)、減法(-)、乘法(×)、左除()、右除(/)和乘冪(^)等.另外還有其他運算,如求矩陣A的轉(zhuǎn)置(transpose(A))、A的行列式(det(A))、A的秩(rank(A))等,本書后面的章節(jié)將對這些運算進行詳細介紹.

(2)數(shù)組運算

數(shù)組運算又稱點運算,其加、減、乘、除和乘方運算都是對兩個尺寸相同的數(shù)組進行元素對元素的運算.設(shè)數(shù)組為

α=[a1a2,…,an],β=[b1b2,…,bn]

則對應(yīng)的具體運算為

例1-14 數(shù)組運算示例.

例1-15 計算sin(kπ/2)(k=±2,±1,0)的值.

MATLAB命令為:

運行結(jié)果為:

從以上示例可以看出,數(shù)組運算是對應(yīng)元素的運算.

3.關(guān)系運算和邏輯運算

MATLAB常用的關(guān)系操作符有<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、~=(不等于).關(guān)系運算的結(jié)果是邏輯值1(true)或0(false).常用的邏輯運算符是&(與)、|(或)、~(非)和xor(異或).

例1-16 已知矩陣,對它們進行簡單的關(guān)系與邏輯運算.

MATLAB命令為:

運行結(jié)果為:

1.2.3 字符串

MATLAB處理字符串的功能也非常強大,字符串用單引號('')括起的一串字符表示.

1.字符串的輸入

1)直接賦值:用單引號('')括起字符來直接賦值創(chuàng)建字符串.

●輸入英文字符:

●輸入中文字符:

●使用兩個單引號輸入字符串中的單引號:

2)多個字符串組合.

●用“,”連成長字符串:

●用“;”構(gòu)成m×n的字符串矩陣,每行字符串元素的個數(shù)可以不同,但每行字符的總數(shù)必須相同,否則系統(tǒng)報錯.

2.字符串常用操作

MATLAB R2023可以對字符串進行查找、比較、運行等操作.

例1-17 使用字符串函數(shù)運算.

MATLAB命令為:

運行結(jié)果為:

常用的字符串函數(shù)如表1-9所示.

表1-9 常用的字符串函數(shù)

主站蜘蛛池模板: 双江| 饶阳县| 黑水县| 新巴尔虎左旗| 江北区| 荃湾区| 富川| 哈密市| 锦州市| 万安县| 新乡市| 万源市| 兴文县| 会昌县| 安国市| 疏附县| 剑川县| 盐源县| 青田县| 毕节市| 射阳县| 海晏县| 什邡市| 肥乡县| 广东省| 定兴县| 保康县| 肃北| 肇源县| 怀集县| 白朗县| 德清县| 南华县| 邯郸县| 西青区| 郎溪县| 秭归县| 阿坝县| 辽中县| 含山县| 乌兰浩特市|