国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MATLAB中的矩陣

這篇具有很好參考價(jià)值的文章主要介紹了MATLAB中的矩陣。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

矩陣和數(shù)組的概念及其區(qū)別

????????矩陣和數(shù)組在MATLAB中存在很多方面的區(qū)別,主要有以下幾個(gè)方面:

? ? ? ? ? ? ? ? ?矩陣是數(shù)學(xué)上的概念,而數(shù)組是計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域的概念。

????????????????作為一種變換或者映射運(yùn)算符的體現(xiàn),矩陣運(yùn)算有著明確而嚴(yán)格的數(shù)學(xué)規(guī)則;而數(shù)組運(yùn)算是MATLAB軟件定義的規(guī)則,其目的是使數(shù)據(jù)管理方便,操作簡(jiǎn)單,命令形式自然,執(zhí)行計(jì)算有效。

????????矩陣和數(shù)組間的聯(lián)系主要體現(xiàn)在:

????????????????在MATLAB中,矩陣是以數(shù)組的形式存在的。因此,一維數(shù)組相當(dāng)于向量,二維數(shù)組相當(dāng)于矩陣,所以矩陣是數(shù)組的子集。

????????????????只有一行的矩陣,稱為行向量。 只有一列的矩陣,稱為列向量。


矩陣的構(gòu)造

? ? ? ? 1、直接賦值建立簡(jiǎn)單矩陣

????????簡(jiǎn)單矩陣采用矩陣構(gòu)造符號(hào)——方括號(hào)“ [ ] ”,將矩陣元素置于方括號(hào)內(nèi),同行元素之間用空格或逗號(hào)隔開,行與行之間用分號(hào) “ ;? ”隔開。

? ? ? ? 2、構(gòu)造特殊矩陣

????????使用MATLAB中提供的構(gòu)造特殊矩陣的函數(shù)。

matlab定義空矩陣有啥用,matlab

?matlab定義空矩陣有啥用,matlab

?matlab定義空矩陣有啥用,matlab

????????hilb()函數(shù) -- 希爾伯特(Hilbert)矩陣

????????希爾伯特矩陣,也稱H陣,其元素為matlab定義空矩陣有啥用,matlab。由于它是一個(gè)條件數(shù)差的矩陣,所以將它用來作為試驗(yàn)矩陣。

????????hilb(n):用于生成一個(gè)n×n的希爾伯特矩陣。

????????invhilb(n):用于生成一個(gè)n×n的希爾伯特矩陣的逆矩陣整數(shù)矩陣。

>> hilb(3)
ans =
    1.0000    0.5000    0.3333
    0.5000    0.3333    0.2500
    0.3333    0.2500    0.2000
>> invhilb(3)
ans =
     9   -36    30
   -36   192  -180
    30  -180   180

????????toeplitz()函數(shù) -- 托普利茲(Toeplitz)矩陣

????????toeplitz(k,r):用于生成非對(duì)稱托普利茲矩陣,第1列為k,第1行為r,其余元素等于其左上角元素。

????????toeplitz(c):用于用向量c生成一個(gè)對(duì)稱的托普利茲矩陣。

????????上述 k、r、c 通常是某段數(shù)值范圍,但也可以是單個(gè)數(shù)字。

>> toeplitz(1:4,1:2:7)       % 行和列的起始數(shù)字應(yīng)相同
ans =
     1     3     5     7
     2     1     3     5
     3     2     1     3
     4     3     2     1
>> toeplitz(1:4)
ans =
     1     2     3     4
     2     1     2     3
     3     2     1     2
     4     3     2     1

????????rand()函數(shù) -- 0~1間均勻分布的隨機(jī)矩陣

????????rand()函數(shù)產(chǎn)生0~1間均勻分布的隨機(jī)矩陣,其調(diào)用格式如下:

????????r=rand(n):產(chǎn)生維數(shù)為n×n的0~1間均勻分布的隨機(jī)矩陣。

????????r=rand(m,n):產(chǎn)生維數(shù)為n×m的0~1間均勻分布的隨機(jī)矩陣。

????????r=rand(m,n,p,...):產(chǎn)生維數(shù)為n×m×p的0~1間均勻分布的隨機(jī)矩陣。

????????r=rand(size(A)):產(chǎn)生維數(shù)為n×m×p與矩陣A相同的0~1間均勻分布的隨機(jī)矩陣。

>> A=rand(3)                     % 生成 3*3 的隨機(jī)矩陣
A =
    0.9961    0.1067    0.7749
    0.0782    0.9619    0.8173
    0.4427    0.0046    0.8687
>> B=rand(3,4)                   % 生成 3*4 的隨機(jī)矩陣
B =
    0.0844    0.8001    0.1818    0.1361
    0.3998    0.4314    0.2638    0.8693
    0.2599    0.9106    0.1455    0.5797
>> C=rand(size(B))               % 生成和矩陣 B 相同維度的隨機(jī)矩陣
C =
    0.5499    0.6221    0.4018    0.1233
    0.1450    0.3510    0.0760    0.1839
    0.8530    0.5132    0.2399    0.2400

????????randn()函數(shù) -- 標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣

????????randn()函數(shù)產(chǎn)生均值為0、方差為1的隨機(jī)矩陣,其調(diào)用格式如下:

????????r=randn(n)

????????r=randn(m,n)

????????r=randn(m,n,p,...)

????????r=randn([m,n,p,...])

????????r=randn(size(A))

????????其格式可參考上述rand()函數(shù)。

????????magic()函數(shù) -- 魔方(幻方)矩陣

????????magic()函數(shù)產(chǎn)生魔方(幻方)矩陣。魔方矩陣中每行、每列和兩條對(duì)角線上的元素和相等, 其調(diào)用格式如下。

????????M=magic(n)

????????pascal()函數(shù) -- 帕斯卡矩陣

????????pascal()函數(shù)產(chǎn)生帕斯卡矩陣,其調(diào)用格式如下:

????????A=pascal(n):返回n階的對(duì)稱正定Pascal矩陣,其中的元素是由Pascal三角組成的,其逆矩陣的元素都是整數(shù)。

????????A=pascal(n,1):返回由下三角的Cholesky因子組成的Pascal矩陣,它是對(duì)稱的,所以它是自己的逆。

????????A=pascal(n,2):返回pascal(n,1)的轉(zhuǎn)置和交換形式。A是單位矩陣的立方根。

????????vander()函數(shù) -- 范德蒙矩陣

????????vander()函數(shù)產(chǎn)生范德蒙矩陣,其調(diào)用格式如下:

????????A=vander(v):生成范德蒙矩陣,矩陣的列是向量v的冪,即A(i,j)=v(i)^(n-j),其中n=length(v)。

????????使用vander()函數(shù)產(chǎn)生范德蒙矩陣,輸入向量可以是行向量或列向量。

>> vander(1:2:5)       % 行向量做參數(shù)
ans =
     1     1     1
     9     3     1
    25     5     1
>> vander([1;3;5])     % 列向量做參數(shù)
ans =
     1     1     1
     9     3     1
    25     5     1

????????3、向量、標(biāo)量?

????????當(dāng)m=1或n=1,即1×n或m×1時(shí),建立的矩陣稱為向量。

????????當(dāng)m=n=1時(shí),建立的矩陣稱為標(biāo)量。任意以1×1的矩陣形式表示的單個(gè)實(shí)數(shù)、復(fù)數(shù)都是標(biāo)量。

????????4、空矩陣

????????空矩陣可以通過賦值語句建立。

>> a=[ ]     % 構(gòu)建一個(gè)空矩陣
a =
     []

????????空矩陣和0矩陣的本質(zhì)區(qū)別在于:空矩陣內(nèi)沒有任何元素,因此不占用任何存儲(chǔ)空間;而0矩陣表示該 矩陣中的所有元素全部為0,需要占用一定的存儲(chǔ)空間。


矩陣大小及結(jié)構(gòu)的改變

?????????矩陣大小及結(jié)構(gòu)的改變方式主要有旋轉(zhuǎn)矩陣、改變矩陣維度、刪除矩陣元素等。

matlab定義空矩陣有啥用,matlab

matlab定義空矩陣有啥用,matlab


矩陣下標(biāo)引用?

? ? ? ? 1、雙下標(biāo)索引

????????雙下標(biāo)索引是通過一個(gè) 二元數(shù)組對(duì)來對(duì)應(yīng)元素在矩陣中的行列位置,例如A(2,3)表示矩陣A中第2行第3列的元素。

? ? ? ? 2、單下標(biāo)索引

????????單下標(biāo)索引的方式是采用列元素優(yōu)先的原則,對(duì)m行n列的矩陣按列排序進(jìn)行重組,成為一維數(shù)組,再取新的一維數(shù)組中的元素位置對(duì)應(yīng)的值作為元素在原矩陣中的單下標(biāo)。例如對(duì)于4×4的矩陣,A(7)表示矩陣A中第3行第2列的元 素,而A(13)表示矩陣A中第1行第4列的元素。

? ? ? ? 3、單下標(biāo)和雙下標(biāo)間轉(zhuǎn)換

????????sub2ind函數(shù)

????????格式:IND = sub2ind ( siz , i , j )

????????說明:其功能為將雙下標(biāo)索引值轉(zhuǎn)換為單下標(biāo)索引值,其中siz是一個(gè)包含兩個(gè)元素的數(shù)組,代表了轉(zhuǎn)換矩陣的行列數(shù),一般可以直接用size(A)表示;i與j分別是雙下標(biāo)索引中的行、列值;IND是轉(zhuǎn)換后的單下標(biāo)索引 值。?

????????ind2sub函數(shù)

????????格式:[ i j ] = ind2sub ( siz , ind )

????????說明:其功能為將單下標(biāo)索引值轉(zhuǎn)換為雙下標(biāo)索引值,各變量意義同上。

>> A=magic(3)                    % 創(chuàng)建一個(gè) 3*3 的幻方矩陣
A =
     8     1     6
     3     5     7
     4     9     2
>> IND=sub2ind ( size(A),2,3 )   % 雙下標(biāo)轉(zhuǎn)換為單下標(biāo)
IND =
     8
>> [ i j ]=ind2sub( size(A),7 )  % 單下標(biāo)轉(zhuǎn)換為雙下標(biāo)
i =
     1
j =
     3

????????4、多個(gè)矩陣元素的索引

????????在下標(biāo)表達(dá)式中,可以用冒號(hào)來表示矩陣的多個(gè)元素。

?????????如:

????????A ( m : n , j )? ? ? ? 表示矩陣從第 m 行到第 n 行,第 j 列的元素

????????A ( m : i : n , j )? ? 表示矩陣第 m 行、第 m+i 行、... 、直到第 n 行,第 j 列的元素

????????A (? : ?, j )?? ? ? ? ? ? ?表示矩陣所有行的第 j 列元素

????????A (? : ?, end )?? ? ? ? 表示矩陣所有行的最后一列元素(end 表示最后一行或最后一列)

????????A ( [1 3]?, j )?? ? ? ? ?表示矩陣第 1 行、第 3 行,第 j 列的元素

????????以上所有示例同樣適用于列,或者行列混合索引。

? ? ? ? 5、矩陣索引常用表達(dá)式

matlab定義空矩陣有啥用,matlab


矩陣信息的獲取

1、矩陣結(jié)構(gòu)

????????矩陣的結(jié)構(gòu)是指矩陣子元素的排列方式。

????????這類函數(shù)的返回值是邏輯類型的數(shù)據(jù)。返回值為“1”表示該矩陣是某一特定類型的矩陣;返回值為“0”表 示該矩陣不是該特定類型的矩陣。

matlab定義空矩陣有啥用,matlab

2、矩陣大小

????????包括矩陣的維數(shù), 矩陣各維(如最長(zhǎng)維、用戶指定的維)的長(zhǎng)度,矩陣元素的個(gè)數(shù)。

matlab定義空矩陣有啥用,matlab

????????ndims函數(shù)

????????對(duì)于空矩陣、標(biāo)量矩陣、一維矩陣和二維矩陣,MATLAB都將其作為普通二維數(shù)組對(duì)待。特別需要注意的是,用 [ ] 產(chǎn)生的空矩陣是作為二維矩陣的,但是在高維矩陣中也有空矩陣的概念,此時(shí)空矩陣則具有多個(gè)維度。

>> A=[ ];                          % 空矩陣
>> B=5;                            % 標(biāo)量
>> C=1:3;                          % 一維矩陣
>> D=magic(2);                     % 二維矩陣
>> E( : , : , 2 ) = [1,3 ; 2,4];   % 三維矩陣
>> x=[ ndims(A) , ndims(B) , ndims(C) , ndims(D) , ndims(E) ]
x =
     2     2     2     2     3

????????size函數(shù)

????????size函數(shù)的返回值可以是分開顯示的單個(gè)實(shí)數(shù)變量,也可以是一個(gè)行向量;

????????在size函數(shù)的輸入?yún)?shù)中增加維度參數(shù)可以獲取指定維度的長(zhǎng)度,其中“1”表示行,“2”表示列。

>> A=[ ];
>> B=[1,2,3,4];
>> C=[0,2,4;1,3,5];
>> size(A)        % 空矩陣
ans =
     0     0
>> size(B)        % 一維數(shù)組(矩陣),行數(shù) 1 ,列數(shù) 4
ans =
     1     4
>> size(C)        % 二維數(shù)組(矩陣),行數(shù) 2 ,列數(shù) 3
ans =
     2     3
>> size(C,2)      % 矩陣的列數(shù)
ans =
     3

? ? ? ? 3、矩陣的數(shù)據(jù)類型

????????矩陣作為MATLAB的內(nèi)部數(shù)據(jù)存儲(chǔ)和運(yùn)算結(jié)構(gòu),其元素可以是各種各樣的數(shù)據(jù)類型, 對(duì)應(yīng)不同數(shù)據(jù)類型的元素,可以是數(shù)值、字符串、元胞、結(jié)構(gòu)體等。

matlab定義空矩陣有啥用,matlab

????????4、矩陣占用的內(nèi)存

????????通過whos命令查看 當(dāng)前工作區(qū)中指定變量的所有信息,包括變量名、矩陣大小、內(nèi)存占用和數(shù)據(jù)類型等。

>> C=[0,2,4;1,3,5];
>> whos C
  Name      Size            Bytes  Class     Attributes
  C         2x3                48  double

矩陣修改、擴(kuò)展與合并

????????1、矩陣元素的修改

????????可以通過下標(biāo)索引的方式修改矩陣元素,具體方法參考:?矩陣下標(biāo)引用?。

????????如:

????????A( i , j ) = value:等號(hào)左側(cè)為矩陣中的某個(gè)元素;等號(hào)右側(cè)為值。

????????A = [ ] :刪除矩陣中的所有元素。

????????2、矩陣元素的擴(kuò)展與刪除

>> A=[ 1 1 ; 2 2 ]
A =
     1     1
     2     2
>> A(3 , : ) = 3     % 給整行賦值,增加行
A =
     1     1
     2     2
     3     3
>> A(4 , 1) = 4      % 給新行的元素依次賦值,增加行
A =
     1     1
     2     2
     3     3
     4     0
>> A(4 , 2) = 4
A =
     1     1
     2     2
     3     3
     4     4
>> A(2 , : )=[ ]     % 將整行賦值為空,刪除行
A =
     1     1
     3     3
     4     4

????????3、矩陣合并函數(shù)

????????將兩個(gè)矩陣按某個(gè)維度進(jìn)行合并操作時(shí),原始的兩個(gè)矩陣要在某一個(gè)維度上具有相同的長(zhǎng)度,否則MATLAB在進(jìn)行計(jì)算時(shí)就會(huì)發(fā)生錯(cuò)誤。

????????針對(duì)二維矩陣A、B:[A,B]表示按列存儲(chǔ)合并矩陣,即將B矩陣接到A矩陣的列后面;[A;B]表示按行存儲(chǔ)合并矩陣,即 將B矩陣接到A矩陣的行后面。

>> A=ones(2,3)
A =
     1     1     1
     1     1     1
>> B=zeros(2,3)
B =
     0     0     0
     0     0     0
>> [A , B]         % 按列,合并在后面,水平方向
ans =
     1     1     1     0     0     0
     1     1     1     0     0     0
>> [A ; B]         % 按行,合并在下面,豎直方向
ans =
     1     1     1
     1     1     1
     0     0     0
     0     0     0

? ? ? ? 常用合并函數(shù):?

matlab定義空矩陣有啥用,matlab


矩陣元素的查找

????????MATLAB中函數(shù)find()的作用是進(jìn)行矩陣元素的查找,它通常與關(guān)系函數(shù)和邏輯運(yùn)算相結(jié)合。其調(diào)用格 式如下。

????????ind=find(X):該函數(shù)查找矩陣X中的非零元素,函數(shù)返回這些元素的單下標(biāo)。

????????[row,col]=find(X,...):該函數(shù)查找矩陣X中的非零元素,函數(shù)返回這些元素的雙下標(biāo)i和j。

>> A=[ 1 3 0 ; 3 1 0 ; 9 2 4 ]
A =
     1     3     0
     3     1     0
     9     2     4
>> B=find(A)         % 返回矩陣 A 中非 0 數(shù)值的下標(biāo),列向量
B =

     1
     2
     3
     4
     5
     6
     9
>> C=find(A>1)       % 返回矩陣 A 中大于 1 的數(shù)值的下標(biāo)
C =
     2
     3
     4
     6
     9

>> A(find(A==0))=-1  % 找到矩陣 A 中值為 0 的數(shù)據(jù),并賦值為 -1
A =
     1     3    -1
     3     1    -1
     9     2     4

矩陣元素的排序

????????MATLAB中函數(shù)sort()的作用是按照升序排序,排序后的矩陣和原矩陣的維數(shù)相同。其調(diào)用格式如下。

????????B=sort(A):該函數(shù)對(duì)矩陣A進(jìn)行升序排序。A可為矩陣或向量。

????????B=sort(A,dim):該函數(shù)對(duì)矩陣A進(jìn)行升序排序,并將結(jié)果返回在給定的維數(shù)dim上按照升序排序。當(dāng)dim=1時(shí),按照列進(jìn)行排 序;當(dāng)dim=2時(shí),按照行進(jìn)行排序。

????????B=sort(...,mode):該函數(shù)對(duì)矩陣A進(jìn)行排序,mode可指定排序的方式。ascend指定按升序排序,為默認(rèn)值;descend指定按降序 排序。

>> A=[1 3 0 ; 3 1 0 ; 9 2 4 ]
A =
     1     3     0
     3     1     0
     9     2     4
>> sort(A)                % 排序,默認(rèn)按列、升序
ans =
     1     1     0
     3     2     0
     9     3     4
>> sort(A,1)              % 按列排序,默認(rèn)升序
ans =
     1     1     0
     3     2     0
     9     3     4
>> sort(A,2)              % 按行排序,默認(rèn)升序
ans =
     0     1     3
     0     1     3
     2     4     9
>> sort(A,'descend')      % 降序排序,默認(rèn)按列
ans =
     9     3     4
     3     2     0
     1     1     0
>> sort(A,2,'descend')    % 按行降序排序
ans =
     3     1     0
     3     1     0
     9     4     2
>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>> % 對(duì)向量進(jìn)行排序
>> B=[2 7 3 0 8 5 ]
B =
     2     7     3     0     8     5
>> sort(B)
ans =
     0     2     3     5     7     8

矩陣元素的求和

????????MATLAB中函數(shù)sum()和cumsum()的作用是對(duì)矩陣的元素求和。其調(diào)用格式如下。

????????B=sum(A):該函數(shù)對(duì)矩陣A的元素求和,返回由矩陣A各列元素的和組成的向量。

????????B=sum(A,dim):該函數(shù)返回在給定的維數(shù)dim上元素的和。當(dāng)dim=1時(shí),計(jì)算矩陣A各列元素的和;當(dāng)dim=2時(shí),計(jì)算矩陣A各行元素的和。

????????B=cumsum(A)。

????????B=cumsum(A,dim)。

????????函數(shù)cumsum()的調(diào)用格式與sum()類似,不同的是其返回值為矩陣。

????????使用sum(sum())可求出矩陣所有元素的和。

>> A=[ 1 3 0 ; 3 1 0 ; 9 2 4 ]
A =
     1     3     0
     3     1     0
     9     2     4
>> sum(A)              % 按列求和,將每列的元素相加
ans =
    13     6     4
>> sum(A,2)            % 按行求和,將每行的元素相加
ans =
     4
     4
    15
>> cumsum(A)           % 按列漸次求和,第 1 行不變,第 n 行值為 1 ~ n 行對(duì)應(yīng)列的元素之和
ans =
     1     3     0
     4     4     0
    13     6     4
>> cumsum(A,2)         % 按行漸次求和,第 1 列不變,第 n 列值為 1 ~ n 列對(duì)應(yīng)行的元素之和
ans =
     1     4     4
     3     4     4
     9    11    15
>> sum(sum(A))         % 求矩陣所有元素之和
ans =
    23

矩陣元素的求積

????????MATLAB中函數(shù)prod()和cumprod()的作用是對(duì)矩陣的元素求積。其調(diào)用格式如下。

????????B=prod(A):該函數(shù)對(duì)矩陣A的元素求積,返回由矩陣A各列元素的積組成的向量。

????????B=prod(A,dim):該函數(shù)返回在給定的維數(shù)dim上元素的積。當(dāng)dim=1時(shí),計(jì)算矩陣A各列元素的積;當(dāng)dim=2時(shí),計(jì)算矩陣A各 行元素的積。

????????B=cumprod(A)。

????????B=cumprod(A,dim)。

????????函數(shù)cumprod()的調(diào)用格式與prod()類似,不同的是其返回值為矩陣。

????????類同與矩陣元素的求和。


矩陣元素的差分

????????MATLAB中函數(shù)diff()的作用是計(jì)算矩陣元素的差分。其調(diào)用格式如下。

????????Y=diff(X):計(jì)算矩陣各列元素的差分。

????????Y=diff(X,n):計(jì)算矩陣各列元素的n階差分。

????????Y=diff(X,n,dim):計(jì)算矩陣在給定的維數(shù)dim上元素的n階差分。當(dāng)dim=1時(shí),計(jì)算矩陣各列元素的差分;當(dāng)dim=2時(shí),計(jì)算矩 陣各行元素的差分。

????????當(dāng)參數(shù)n≥size(x,dim)時(shí),函數(shù)的返回值是空矩陣。


矩陣分析、分解、特征值和特征向量

? ? ? ? 1、矩陣分析函數(shù)

matlab定義空矩陣有啥用,matlab

????????2、矩陣分解函數(shù)

? ? ? ? 3、特征值與特征向量函數(shù)。

????????eig(A):求包含矩陣A的特征值的向量。

????????[X,D]=eig(A):產(chǎn)生一個(gè)矩陣A的特征值在對(duì)角線上的對(duì)角矩陣D和矩陣X,它們的列是相應(yīng)的特征向量,滿足AX=XD。為了 得到有更好條件特征值的矩陣,要進(jìn)行相似變換。

???????? [T,B]=balance(A):找到一個(gè)相似變換矩陣T和矩陣B,使得它們滿足B=T-A?T。B是用命令balance求得的平衡矩陣。

????????eig(A,'nobalance'):不經(jīng)過平衡處理求得矩陣A的特征值和特征向量,也就是不進(jìn)行平衡相似變換。

????????eigs(A):返回一個(gè)由矩陣A的部分特征值組成的向量,和eig命令一樣,但是不返回全部的特征值。如果不帶有參量,則計(jì)算 出最大的特征值。當(dāng)計(jì)算所有特征值時(shí),如果矩陣A的秩不小于6,則計(jì)算出6個(gè)特征值。

????????eigs(f,n):求出矩陣A的部分特征值。在使用一個(gè)矩陣列的線性運(yùn)算符時(shí),字符串f中包含的是M文件的文件名,n指定問題的 階次。用這種方法來求特征值比開始就用運(yùn)算符來求要快。

???????? eigs(A,B,k,sigma):求矩陣A的部分特征值,矩陣B的大小和A相同;如果沒有給出B=eye(size(A)),那么k就是要計(jì)算的特征值 的個(gè)數(shù);如果k沒有給出,就用小于6的數(shù)或者A的秩。

????????變量sigma是一個(gè)實(shí)數(shù)或復(fù)數(shù)的移位參數(shù),或者下列文本字符串中的一個(gè),文本字符串指明的是特征值 的屬性:“l(fā)m”為最大的特征值,“sm”為最小的特征值,“l(fā)r”為最大的實(shí)數(shù)部分,“sr”為最小的實(shí)數(shù)部 分,“be”為同時(shí)求得最大和最小的實(shí)數(shù)部分。

????????condeig(A):返回一個(gè)由矩陣A的特征值條件數(shù)組成的向量。

????????[V,D,s]=condeig(A):返回[V,D]=eig(A)和s=condeig(A)。


稀疏矩陣

????????在許多問題中提到了含有大量0元素的矩陣,這樣的矩陣稱為稀疏矩陣。為了節(jié)省存儲(chǔ)空間和計(jì)算時(shí)間,MATLAB考慮到矩陣的稀疏性,在對(duì)它進(jìn)行運(yùn)算時(shí)有特殊的命令。

????????稀疏矩陣大部分元素是0,因此只需存儲(chǔ)非零元素的下標(biāo)和元素值,這種特殊的存儲(chǔ)方式可以節(jié)省大量的存儲(chǔ)空間和不必要的運(yùn)算。

????????節(jié)省存儲(chǔ)空間:如果MATLAB把一個(gè)矩陣當(dāng)作稀疏矩 陣,那么只需在m×3的矩陣中存儲(chǔ)m個(gè)非零項(xiàng)。第1列是行下標(biāo),第2列是列下標(biāo),第3列是非零元素值,不 必保存0元素。如果存儲(chǔ)每個(gè)浮點(diǎn)數(shù)需要8字節(jié),存儲(chǔ)每個(gè)下標(biāo)需要4字節(jié),那么整個(gè)矩陣在內(nèi)存中存儲(chǔ)需要 16×m字節(jié)。

????????節(jié)省計(jì)算時(shí)間:相對(duì)于普通矩陣來說,稀疏矩陣的計(jì)算速度更快,因?yàn)镸ATLAB只對(duì)非零元素進(jìn)行操作,這是稀疏矩陣第二個(gè)突出的優(yōu)點(diǎn)。

? ? ? ? 1、稀疏矩陣的生成

????????sparse()函數(shù)創(chuàng)建稀疏矩陣

matlab定義空矩陣有啥用,matlab

?????????輸入稀疏矩陣

>> % 參數(shù)依次為:行號(hào),列號(hào),元素值
>> % 顯示矩陣內(nèi)容時(shí),按列為順序依次顯示
>> s=sparse([1,2,3,4,5],[2,1,4,6,2],[10,3,-2,-5,1])
s =
   (2,1)        3
   (1,2)       10
   (5,2)        1
   (3,4)       -2
   (4,6)       -5

????????滿矩陣轉(zhuǎn)和稀疏矩陣的互換

>> A=[1 0 0 0 ; 0 5 0 0 ; 2 0 0 7]
A =
     1     0     0     0
     0     5     0     0
     2     0     0     7
>> S=sparse(A)            % 滿矩陣轉(zhuǎn)換為稀疏矩陣
S =
   (1,1)        1
   (3,1)        2
   (2,2)        5
   (3,4)        7
>> B=full(S)              % 稀疏矩陣轉(zhuǎn)換為滿矩陣
B =
     1     0     0     0
     0     5     0     0
     2     0     0     7

????????創(chuàng)建特殊稀疏矩陣

matlab定義空矩陣有啥用,matlab

? ? ? ? ?2、查看稀疏矩陣

>> A=[ 0 0 0 1 ; 0 0 8 0 ; 4 0 0 0 ; 0 0 0 0 ]
A =
     0     0     0     1
     0     0     8     0
     4     0     0     0
     0     0     0     0
>> S=sparse(A);                % 創(chuàng)建稀疏矩陣
>> n1=nnz(S)                   % 查看非零元素的個(gè)數(shù)
n1 =
     3
>> n2=nonzeros(S)              % 查看非零元素的值
n2 =
     4
     8
     1
>> n3=nzmax(S)                 % 查看稀疏矩陣的存儲(chǔ)空間
n3 =
     3
>> spy(S)                      % 對(duì)稀疏矩陣中非零元素的分布進(jìn)行圖形化顯示

matlab定義空矩陣有啥用,matlab

稀疏矩陣中非零元素的分布

? ? ? ? 3、稀疏矩陣的運(yùn)算

????????滿矩陣的四則運(yùn)算對(duì)稀疏矩陣同樣有效,但是返回結(jié)果有可能是稀疏矩陣或滿矩陣。

????????對(duì)于單個(gè)稀疏矩陣的輸入,大部分函數(shù)輸出的結(jié)果都是稀疏矩陣,有部分函數(shù)輸出的結(jié)果是滿矩陣。

????????對(duì)于多個(gè)矩陣的輸入,如果其中至少有一個(gè)矩陣是滿矩陣,那么大部分函數(shù)的輸出結(jié)果是滿矩陣。

????????對(duì)于矩陣的加、減、乘、除運(yùn)算,只要其中有一個(gè)矩陣是滿矩陣,則輸出的結(jié)果都是滿矩陣。

????????稀疏矩陣的數(shù)乘為稀疏矩陣;稀疏矩陣的冪為稀疏矩陣。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-766800.html

?

到了這里,關(guān)于MATLAB中的矩陣的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MATLAB中的矩陣

    MATLAB中的矩陣

    ????????矩陣和數(shù)組在MATLAB中存在很多方面的區(qū)別,主要有以下幾個(gè)方面: ? ? ? ? ? ? ? ? ?矩陣是數(shù)學(xué)上的概念,而數(shù)組是計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域的概念。 ????????????????作為一種變換或者映射運(yùn)算符的體現(xiàn),矩陣運(yùn)算有著明確而嚴(yán)格的數(shù)學(xué)規(guī)則;而數(shù)組運(yùn)算是

    2024年02月04日
    瀏覽(20)
  • MATLAB中的矩陣索引

    利用矩陣的索引取出原矩陣的子集元素是一種有效的方式。MATLAB的多種索引不但類型強(qiáng)大、靈活,而且表達(dá)清晰易讀。在理解電腦MATLAB編程方面。體會(huì)MATLAB以矩陣為導(dǎo)向思想的高效性,掌握索引便是一種最佳方式。 索引也和MATLAB用戶經(jīng)常聽到的另一個(gè)屬于“矢量/向量”緊密

    2024年02月03日
    瀏覽(13)
  • 第3章 3.3 MATLAB中的矩陣(MATLAB入門課程)

    第3章 3.3 MATLAB中的矩陣(MATLAB入門課程)

    MATLAB教程新手入門篇(數(shù)學(xué)建模清風(fēng)主講,適合零基礎(chǔ)同學(xué)觀看)_嗶哩嗶哩_bilibili 上一節(jié)中介紹了MATLAB中向量的基本操作,本節(jié)介紹MATLAB中矩陣的相關(guān)知識(shí)。因?yàn)橄蛄靠梢钥闯删仃嚨囊粋€(gè)特例,所以它們有許多類似的操作。 在MATLAB中,矩陣的創(chuàng)建方法主要有三種,分別是:

    2024年02月04日
    瀏覽(15)
  • Matlab中的矩陣合并操作

    Matlab中的矩陣合并操作 矩陣是Matlab中最常用的數(shù)據(jù)結(jié)構(gòu)之一,矩陣合并也是一個(gè)十分實(shí)用的操作。本文將介紹在Matlab中如何進(jìn)行矩陣合并,并提供相應(yīng)的源代碼。 在Matlab中,可以用方括號(hào) [] 來表示一個(gè)矩陣。矩陣合并可以分為橫向合并和縱向合并兩種情況。當(dāng)需要將兩個(gè)矩

    2024年02月09日
    瀏覽(18)
  • Matlab高效編程:向量化(vectorization)、矩陣化、變量預(yù)定義

    目錄 0. 前言 1. 變量預(yù)定義 2. 向量化,vectorization 3. 矩陣化 3.1 離散化 3.2 雙重循環(huán)實(shí)現(xiàn) 3.3 向量化實(shí)現(xiàn) 3.4 矩陣化實(shí)現(xiàn) ? ? ? ? 本文介紹幾個(gè)Matlab常用的提高運(yùn)行效率的編程技巧。 ? ? ? ? 對(duì)一個(gè)基于數(shù)值化的方式計(jì)算一個(gè)連續(xù)函數(shù)的頻譜(傅里葉變換)的例子給出了三種實(shí)

    2024年02月02日
    瀏覽(34)
  • MATLAB中的矩陣元素提取和替換

    MATLAB中的矩陣元素提取和替換 在MATLAB中,提取和替換矩陣元素是非常常見的任務(wù)。這項(xiàng)任務(wù)通常涉及到基于索引的操作,MATLAB提供了各種強(qiáng)大的功能來實(shí)現(xiàn)這些操作。在本文中,我們將探討如何使用MATLAB提取和替換矩陣中的元素,并提供相應(yīng)的源代碼示例。 矩陣元素提取 要

    2024年02月07日
    瀏覽(17)
  • Matlab: 刪除矩陣中的行或列

    在Matlab中,您可以使用簡(jiǎn)單的代碼來刪除矩陣中的行或列。刪除行或列對(duì)于數(shù)據(jù)預(yù)處理和矩陣操作非常有用。本文將向您展示如何使用Matlab來實(shí)現(xiàn)這一操作。 刪除行: 要?jiǎng)h除矩陣中的特定行,您可以使用Matlab中的索引操作符來選擇要保留的行。以下是刪除行的示例代碼:

    2024年02月04日
    瀏覽(23)
  • MATLAB中的矩陣的重構(gòu)和重新排列

    MATLAB中的矩陣的重構(gòu)和重新排列

    師從清風(fēng) reshape函數(shù)可以改變矩陣的形狀,其常用語法為 reshape(A,m,n) 或者 reshape(A,[m,n]) ,這可以將矩陣A的形狀更改為m行n列, 前提是轉(zhuǎn)化前后的兩個(gè)矩陣的元素總數(shù)要相同 。例如有一個(gè)矩陣A,它原來的大小是2行6列,我們需要將其形狀變成3行4列,那么,我們可以使用命令:

    2024年03月18日
    瀏覽(23)
  • matlab查找元素在矩陣中的位置

    matlab查找元素在矩陣中的位置

    find ismember 問題在于如果B是A的真子集時(shí),如何方便高效判斷B是否為A的一部分, 筆者給出如下方案. 如果B為A的重復(fù)子部分,需對(duì)結(jié)果進(jìn)行保存.歡迎大家批評(píng)指正:

    2024年02月11日
    瀏覽(18)
  • matlab中令一個(gè)矩陣中的一個(gè)區(qū)域等于另一個(gè)矩陣

    在MATLAB中,你可以使用矩陣索引來將一個(gè)矩陣中的一個(gè)區(qū)域設(shè)置為另一個(gè)矩陣。假設(shè)你有兩個(gè)矩陣A和B,你想將A中的一部分替換為B。以下是實(shí)現(xiàn)此操作的一種方法: 在這個(gè)例子中,我們使用了矩陣索引來選擇A中的一個(gè)子矩陣。A(2:4,2:4)選擇了A的第二行到第四行、第二列到第

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包