matlab logspace 虚数,《MATLAB智能算法超级学习手册》一一1.2 矩阵的表示
本節(jié)書摘來自異步社區(qū)出版社《MATLAB智能算法超級(jí)學(xué)習(xí)手冊(cè)》一書中的第1章,第1.2節(jié),作者:MATLAB技術(shù)聯(lián)盟 , 高飛 , 許玢更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號(hào)查看。
1.2 矩陣的表示
MATLAB智能算法超級(jí)學(xué)習(xí)手冊(cè)
矩陣和向量是一樣的,用來描述某一個(gè)問題的方程組的系數(shù)、由方程組的系數(shù)和常數(shù)構(gòu)成的方陣。矩陣包括數(shù)值矩陣、符號(hào)矩陣、特殊矩陣等3種基本樣式。
1.2.1 數(shù)值矩陣的生成
1.實(shí)數(shù)矩陣的輸入
MATLAB的強(qiáng)大功能之一體現(xiàn)在能直接處理向量或矩陣。前提是用戶根據(jù)具體的問題輸入待處理的向量或矩陣。
一般簡單的定義矩陣,可以直接按行方式輸入每個(gè)元素:同一行中的元素用逗號(hào)(,)或者用空格符來分隔,且空格個(gè)數(shù)不限;不同的行用分號(hào)(;)分隔。
所有元素處于一個(gè)方括號(hào)([ ])內(nèi)。當(dāng)矩陣是多維(三維以上)的,且方括號(hào)內(nèi)的元素是維數(shù)較低的矩陣時(shí),會(huì)有多重方括號(hào)。
【例1-1】實(shí)數(shù)矩陣輸入實(shí)例。
>> T = [11 12 1 2 3 4 5 6 7 8 9 10]
T =
Columns 1 through 11
11 12 1 2 3 4 5 6 7 8 9
Column 12
10
>> X = [2.32 3.43;4.37 5.98]
X =
2.3200 3.4300
4.3700 5.9800
>> va = [1 2 3 4 5]
va =
1 2 3 4 5
>> MB = [1 2 4;2 3 3;5 4 5]
MB =
1 2 4
2 3 3
5 4 5
>> Null = [ ] %生成一個(gè)空矩陣
Null =
[]
2.復(fù)數(shù)矩陣的輸入
復(fù)數(shù)在現(xiàn)行的控制工程以及復(fù)平面計(jì)算中應(yīng)用較多。復(fù)數(shù)矩陣是指帶有虛數(shù)的數(shù)值矩陣。復(fù)數(shù)矩陣的生成方式如例1-2和例1-3所示。
【例1-2】復(fù)數(shù)矩陣輸入方式一實(shí)例。
>> a=1.7;b=3/25;
C=[1,3*a+i*b,b*sqrt(a); sin(pi/5),a+7*b,3.9+1]
C =
1.0000 5.1000 + 0.1200i 0.1565
0.5878 2.5400 4.9000
【例1-3】復(fù)數(shù)矩陣輸入方式二實(shí)例。
>> R=[1 2 3;4 5 6], M=[11 12 13;14 15 16]
R =
1 2 3
4 5 6
M =
11 12 13
14 15 16
>> RM=R+i*M
RM =
1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i
4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i
1.2.2 符號(hào)矩陣的生成
在MATLAB中輸入符號(hào)向量或者矩陣的方法和輸入數(shù)值向量或者矩陣在形式上很相似,只不過要用到符號(hào)矩陣定義函數(shù)sym,或者是用到符號(hào)定義函數(shù)syms。先定義一些必要的符號(hào)變量,再像定義普通矩陣一樣輸入符號(hào)矩陣。
1.用命令sym定義矩陣
這時(shí)的函數(shù)sym實(shí)際上在定義一個(gè)符號(hào)表達(dá)式,符號(hào)矩陣中的元素可以是任何符號(hào)或者表達(dá)式,而且長度沒有限制,只是將方括號(hào)置于用于創(chuàng)建符號(hào)表達(dá)式的單引號(hào)中。
【例1-4】用命令sym定義矩陣實(shí)例。
>> sym_m = sym('[a b c;Jack,Help Me!,NO WAY!]')
sym_m =
[ a, b, c, 0, 0]
[ Jack, Help, factorial(Me), NO, factorial(WAY)]
>> sym_d = sym('[1 2 3;a b c;sin(x) cos(y) tan(z)]')
sym_d =
[ 1, 2, 3]
[ a, b, c]
[ sin(x), cos(y), tan(z)]
2.用命令syms定義矩陣
先定義矩陣中的每一個(gè)元素為一個(gè)符號(hào)變量,然后如數(shù)值矩陣操作那樣輸入符號(hào)矩陣。
【例1-5】用命令syms定義矩陣實(shí)例。
>> syms a b c
>> M1 = sym('Classical');
>> M2 = sym('Claysw');
>> M3 = sym('yellow');
>> yswM123=[a,b,c;M1,M2,M3;2,3,5;5,4,6]
yswM123 =
[ a, b, c]
[ Classical, Claysw, yellow]
[ 2, 3, 5]
[ 5, 4, 6]
3.把數(shù)值矩陣轉(zhuǎn)化成相應(yīng)的符號(hào)矩陣
數(shù)值型和符號(hào)型在MATLAB中是不相同的,它們之間不能直接進(jìn)行轉(zhuǎn)化。MATLAB提供了一個(gè)將數(shù)值型轉(zhuǎn)化成符號(hào)型的命令,即sym。
【例1-6】數(shù)值型轉(zhuǎn)化成符號(hào)型實(shí)例。
>> Digit_Ma = [1/3 sqrt(3) 3.1;exp(0.3) log(10) 23^.5]
Syms_Ma = sym(Digit_Ma)
Digit_Ma =
0.3333 1.7321 3.1000
1.3499 2.3026 4.7958
Syms_Ma =
[ 1/3, 3^(1/2), 31/10]
[ 3039611811401035/2251799813685248, 2592480341699211/1125899906842624, 23^(1/2)]
注意:
思考矩陣是用分?jǐn)?shù)形式還是浮點(diǎn)形式表示的。一般情況下,矩陣是以浮點(diǎn)型變量保存的。針對(duì)本例,矩陣轉(zhuǎn)化成符號(hào)矩陣后以最接近原值的有理數(shù)形式或者函數(shù)形式表示。
1.2.3 特殊矩陣的生成
(1)全零陣
函數(shù) zeros
格式 B = zeros(n) %生成n×n全零陣
B = zeros(m,n) %生成m×n全零陣
B = zeros([m n]) %生成m×n全零陣
B = zeros(d1,d2,d3…) %生成d1×d2×d3×…全零陣或數(shù)組
B = zeros([d1 d2 d3…]) %生成d1×d2×d3…全零陣或數(shù)組
B = zeros(size(A)) %生成與矩陣_A_大小相同的全零陣
(2)單位陣
函數(shù) eye
格式 Y = eye(n) %生成n×n單位陣
Y = eye(m,n) %生成m×n單位陣
Y = eye(size(A)) %生成與矩陣A大小相同的單位陣
(3)全1陣
函數(shù) ones
格式 Y = ones(n) %生成n×n全1陣
Y = ones(m,n) %生成m×n全1陣
Y = ones([m n]) %生成m×n全1陣
Y = ones(d1,d2,d3…) %生成d1×d2×d3…全1陣或數(shù)組
Y = ones([d1 d2 d3…]) %生成d1×d2×d3…全1陣或數(shù)組
Y = ones(size(A)) %生成與矩陣_A_大小相同的全1陣
(4)均勻分布隨機(jī)矩陣
函數(shù) rand
格式 Y = rand(n) %生成n×n隨機(jī)矩陣,其元素在(0,1)內(nèi)
Y = rand(m,n) %生成m×n隨機(jī)矩陣
Y = rand([m n]) %生成m×n隨機(jī)矩陣
Y = rand(m,n,p,…) %生成m×n×p×…隨機(jī)矩陣或數(shù)組
Y = rand([m n p…]) %生成m×n×p×…隨機(jī)矩陣或數(shù)組
Y = rand(size(A)) %生成與矩陣A大小相同的隨機(jī)矩陣
rand %無變量輸入時(shí)只產(chǎn)生一個(gè)隨機(jī)數(shù)
s = rand('state') %產(chǎn)生包括均勻發(fā)生器當(dāng)前狀態(tài)的35個(gè)元素的向量
rand('state', s) %使?fàn)顟B(tài)重置為s
rand('state', 0) %重置發(fā)生器到初始狀態(tài)
rand('state', j) %對(duì)整數(shù)j重置發(fā)生器到第j個(gè)狀態(tài)
rand('state', sum (100*clock)) %每次重置到不同狀態(tài)
(5)正態(tài)分布隨機(jī)矩陣
函數(shù) randn
格式 Y = randn(n) %生成n×n正態(tài)分布隨機(jī)矩陣
Y = randn(m,n) %生成_m×n正態(tài)分布隨機(jī)矩陣
Y = randn([m n]) %生成m×n正態(tài)分布隨機(jī)矩陣
Y = randn(m,n,p,…) %生成m×n×p×…正態(tài)分布隨機(jī)矩陣或數(shù)組
Y = randn([m n p…]) %生成m×n×p×…正態(tài)分布隨機(jī)矩陣或數(shù)組
Y = randn(size(A)) %生成與矩陣A大小相同的正態(tài)分布隨機(jī)矩陣
randn %無變量輸入時(shí)只產(chǎn)生一個(gè)正態(tài)分布隨機(jī)數(shù)
s = randn('state') %產(chǎn)生包括正態(tài)發(fā)生器當(dāng)前狀態(tài)的2個(gè)元素的向量
s = randn('state', s) %重置狀態(tài)為s
s = randn('state', 0) %重置發(fā)生器為初始狀態(tài)
s = randn('state', j) %對(duì)于整數(shù)j重置狀態(tài)到第j個(gè)狀態(tài)
s = randn('state', sum(100*clock)) %每次重置到不同狀態(tài)
(6)產(chǎn)生隨機(jī)排列
函數(shù) randperm
格式 p = randperm(n) %產(chǎn)生1~n之間整數(shù)的隨機(jī)排列
(7)產(chǎn)生線性等分向量函數(shù)linspace
格式 y = linspace(a,b) %在(a,b)上產(chǎn)生100個(gè)線性等分點(diǎn)
y = linspace(a,b,n) %在(a,b)上產(chǎn)生n個(gè)線性等分點(diǎn)
(8)產(chǎn)生對(duì)數(shù)等分向量
函數(shù) logspace
格式 y = logspace(a,b) %在(10a,10b)之間產(chǎn)生50個(gè)對(duì)數(shù)等分向量
y = logspace(a,b,n) %在(10a,10b)上產(chǎn)生_n_個(gè)對(duì)數(shù)等分向量
y = logspace(a,pi) %在(10a,π)上產(chǎn)生50個(gè)對(duì)數(shù)等分向量
(9)計(jì)算矩陣中元素個(gè)數(shù)
函數(shù) numel
格式 n = numel(a) %返回矩陣A中元素的個(gè)數(shù)
(10)產(chǎn)生以輸入元素為對(duì)角線元素的矩陣
函數(shù) blkdiag
格式 out = blkdiag(a,b,c,d,…) %產(chǎn)生以a,b,c,d,…為對(duì)角線元素的矩陣
(11)友矩陣
函數(shù) compan
格式 A = compan(u) %u為多項(xiàng)式系統(tǒng)向量,A為友矩陣,A的第1行元素為-u(2:n)/u(1),其中u(2:n)為u的第2到n個(gè)元素,A的特征值就是多項(xiàng)式的特征根
(12)Hadamard矩陣
函數(shù) hadamard
格式 H = hadamard(n) %返回n階Hadamard矩陣
(13)hankel方陣
函數(shù) hankel
格式 H = hankel(c) %第1列元素為c,反三角以下元素為0
H = hankel(c,r) %第1列元素為c,最后一行元素為r。如果c的最后一個(gè)元素與r的第一個(gè)元素不同,交叉位置的元素取為c的最后一個(gè)元素
(14)Hilbert矩陣
函數(shù) hilb
格式 H = hilb(n) %返回n階Hilbert矩陣,其元素為H(i,j)=1/(i+j-1)。
(15)逆Hilbert矩陣
函數(shù) invhilb
格式 H = invhilb(n) %產(chǎn)生n階逆Hilbert矩陣
(16)Magic(魔方)矩陣
函數(shù) magic
格式 M = magic(n) %產(chǎn)生n階魔方矩陣
(17)Pascal矩陣
函數(shù) pascal
格式 A = pascal(n) %產(chǎn)生n階Pascal矩陣。它是對(duì)稱正定矩陣,元素由Pascal三角組成。它的逆矩陣的所有元素都是整數(shù)
A = pascal(n,1) %返回由下三角的Cholesky系數(shù)組成的Pascal矩陣
A = pascal(n,2) %返回pascal(n,1)的轉(zhuǎn)置和交換的形式
(18)托普利茲矩陣
函數(shù) toeplitz
格式 T = toeplitz(c,r) %生成一個(gè)非對(duì)稱的托普利茲矩陣,將c作為第1列,將r作為第1 行,其余元素與左上角相鄰元素相等
T = toeplitz(r) %用向量r生成一個(gè)對(duì)稱的托普利茲矩陣
(19)Wilkinson特征值測(cè)試陣
函數(shù) wilkinson
格式 W = wilkinson(n) %返回n階Wilkinson特征值測(cè)試陣
總結(jié)
以上是生活随笔為你收集整理的matlab logspace 虚数,《MATLAB智能算法超级学习手册》一一1.2 矩阵的表示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Document.getElement方
- 下一篇: matlab 实现马赫带效应,图像上机实