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

2.1 矩陣的創建

2.1.1 直接輸入矩陣

MATLAB語言最簡單的創建矩陣的方法是通過鍵盤在命令窗口直接輸入矩陣,直接輸入法的規則如下:

(1)將所有矩陣元素置于一對方括號[]內;

(2)同一行不同元素之間用逗號“,”或者空格符來分隔;

(3)不同行用分號“;”或者回車符分隔。

例如,在命令空間輸入:

MATLAB語言創建復數矩陣,方法和創建一般實數矩陣一樣,虛數單位用i或者j表示。例如,創建復數矩陣:

其中:

(1)虛部和虛數單位之間可以使用乘號?連接,也可以忽略乘號?;

(2)復數矩陣元素可以用運算表達式;

(3)虛數單位用i或者j,顯示時都是i。

2.1.2 冒號生成矩陣

在MATLAB語言中,冒號“:”是一個很重要的運算符,可以利用它產生步長相等的一維數組或行向量。冒號表達式的格式如下:

其中:

(1)a是數組或者行向量的第一個元素,b是最后一個元素,step是步長增量;

(2)冒號表達式可以產生一個由a開始到b結束,以步長step自增或自減(步長為負值,b<a)的數組或者行向量;

(3)如果步長step=1,則冒號表達式可以省略步長,直接寫為x=a:b。

例如:

2.1.3 利用函數生成矩陣

在MATLAB語言中,可以利用函數生成一維數組或者行向量。

1.linspace函數

MATLAB語言可以用linspace函數生成初值、終值和元素個數已知的一維數組或者行向量,元素之間是等差數列。其調用格式如下:

其中:

(1)a和b分別是生成一維數組或者行向量的初值和終值,n是元素總數,當n省略時,自動產生100個元素;

(2)用linspace函數產生的一維數組或者行向量,n個元素是等差數列;

(3)當a>b時,元素之間是等差遞減,當a<b時,元素之間是等差遞增;

(4)顯然,linspace(a,b,n)與a:(b﹣a)/(n﹣1):b是等價的。

例如:

2.logspace函數

MATLAB語言可以用logspace函數生成一維數組或者行向量,元素之間是對數等比數列。其調用格式如下:

其中:

(1)第一個元素為10 a,最后一個元素為10 b,元素個數為n的對數等比數列;

(2)如果b的值為pi,則該函數產生到pi之間n個對數等比數列。

例如:

2.1.4 利用文本文件生成矩陣

MATLAB語言中的矩陣還可以由文本文件生成,即先建立txt數據文件,然后在命令窗口直接調用該文件,就能產生數據矩陣。需要注意,txt文件中不含變量名稱,文件名為矩陣變量名,每行數值個數相等。

這種生成矩陣方法的優點是可以將數據存儲在文本文件中,利用load函數,直接將數據讀入MATLAB工作空間中,自動生成矩陣,而不需要手動輸入數據。

【例2-1】 利用文本文件建立矩陣A,把下面代碼另存至工作目錄中,文件名為A.txt文件,如圖2-1所示。

圖2-1 文本文件數據

2.1.5 利用M文件生成矩陣

對于一些比較大的常用矩陣,MATLAB語言可以為它專門建立一個M文件,在命令窗口中直接調用文件,此種方法比較適合大型矩陣創建,便于修改。需要注意,M文件中的矩陣變量名不能與文件名相同,否則會出現變量名和文件名混亂的情況。

【例2-2】 利用M文件生成如下大矩陣A,文件名為exam_2_2.m:

2.1.6 特殊矩陣的生成

MATLAB語言中內置了許多特殊矩陣的生成函數,可以通過這些函數自動生成具有不同特殊性質的矩陣。表2-1是MATLAB語言中常見的特殊矩陣函數。

表2-1 常見的特殊矩陣函數

1.單位矩陣

MATLAB語言生成單位矩陣的函數是eye,其調用格式如下:

其中:

(1)A1=eye(n)表示生成n×n的單位矩陣;

(2)A2=eye(m,n)表示生成m×n的單位矩陣。

例如:

2.0矩陣

MATLAB語言生成所有元素為0的矩陣的函數是zeros,其調用格式如下:

其中:

(1)A1=zeros(n)表示生成n×n的0矩陣;

(2)A2=zeros(m,n)表示生成m×n的0矩陣。

例如:

3.1矩陣

MATLAB語言生成所有元素為1的矩陣的函數是ones,其調用格式如下:

其中:

(1)A1=ones(n)表示生成n×n的1矩陣;

(2)A2=ones(m,n)表示生成m×n的1矩陣。

例如:

4.魔方矩陣

魔方矩陣是指行和列,正和反斜對角線元素之和都相等的矩陣,MATLAB語言可以用magic函數生成魔方矩陣,其調用格式如下:

其中,A=magic(n)表示生成n×n的魔方矩陣,n>0,且n≠2。例如:

顯然,由B和C的結果可知,矩陣A是一個魔方矩陣。

5.0~1均勻分布隨機矩陣

MATLAB語言生成0~1均勻分布的隨機矩陣的函數是rand,其調用格式如下:

其中:

(1)A1=rand(n)表示生成n×n個元素值為0~1均勻分布的隨機矩陣;

(2)A2=rand(m,n)表示生成m×n個元素值為0~1均勻分布的隨機矩陣;

(3)A3=a+(b﹣a)?rand(m,n)表示生成m×n個元素值為a~b均勻分布的隨機矩陣。

例如:

6.正態分布隨機矩陣

MATLAB語言生成均值為0,單位方差的正態分布的隨機矩陣的函數是randn,其調用格式如下:

其中:

(1)A1=randn(n)表示生成n×n個元素且均值為0、方差為1的正態分布的隨機矩陣;

(2)A2=randn(m,n)表示生成m×n個元素且均值為0、方差為1的正態分布的隨機矩陣;

(3)A3=a+sqrt(b)?randn(m,n)表示生成m×n個元素且均值為a、方差為b的正態分布的隨機矩陣。

例如:

需要指出的是,rand和randn產生的都是隨機數,用戶所得結果可能與本書的例題不同。

7.對角矩陣

MATLAB語言生成對角矩陣的函數是diag,其調用格式如下:

其中:

(1)A=diag(v,k)表示生成以向量v元素作為矩陣A的第k條對角線元素的對角矩陣;

(2)當k=0時,v為A的主對角線,當k>0時,v為A的主對角線上方第k條對角線的元素,當k<0時,v為A的主對角線下方第k條對角線的元素。

例如:

若A是一個矩陣,則diag(A)是提取矩陣A的對角線矩陣。例如:

8.三角矩陣

MATLAB語言生成三角矩陣的函數是tril和triu,其調用格式如下:

其中:

(1)A1=tril(A,k)表示生成矩陣A中第k條對角線的下三角部分的矩陣;

(2)A1=triu(A,k)表示生成矩陣A中第k條對角線的上三角部分的矩陣;

(3)k=0為A的主對角線,k>0為A的主對角線以上,k<0為A的主對角線以下。

例如:

主站蜘蛛池模板: 崇信县| 阿图什市| 铁岭县| 嘉荫县| 迭部县| 高碑店市| 自治县| 辉南县| 泰州市| 商城县| 溆浦县| 商水县| 武宣县| 武隆县| 邯郸县| 怀柔区| 庄浪县| 汨罗市| 自治县| 鱼台县| 芦溪县| 涟水县| 文成县| 阜宁县| 蒲城县| 平顶山市| 贵阳市| 黎川县| 顺平县| 安仁县| 平泉县| 塔城市| 长葛市| 阿勒泰市| 东海县| 屯昌县| 托里县| 嵊泗县| 堆龙德庆县| 威信县| 读书|