diag 函式功能

2021-06-08 14:35:39 字數 1594 閱讀 1254

diag函式功能:矩陣對角元素的提取和建立對角陣

設以下x為方陣,v為向量

1、x = diag(v,k)當v是乙個含有n個元素的向量時,返回乙個n+abs(k)階方陣x,向量v在矩陣x中的第k個對角線上,k=0表示主對角線,k>0表示在主對角線上方,k<0表示在主對角線下方。例1:

v=[1 2 3];

diag(v, 3)

ans =

0     0     0     1     0     0

0     0     0     0     2     0

0     0     0     0     0     3

0     0     0     0     0     0

0     0     0     0     0     0

0     0     0     0     0     0

注:從主對角矩陣上方的第三個位置開始按對角線方向產生資料的

例2:v=[1 2 3];

diag(v, -1)

ans =

0 0 0 0

1 0 0 0

0 2 0 0

0 0 3 0

注:從主對角矩陣下方的第乙個位置開始按對角線方向產生資料的

2、x = diag(v)

向量v在方陣x的主對角線上,類似於diag(v,k),k=0的情況。

例3:v=[1 2 3];

diag(v)

ans =

1 0 0

0 2 0

0 0 3

注:寫成了對角矩陣的形式

3、v = diag(x,k)

返回列向量v,v由矩陣x的第k個對角線上的元素形成

例4:v=[1 0 3;2 3 1;4 5 3];

diag(v,1)

ans =01

注:把主對角線上方的第乙個資料作為起始資料,按對角線順序取出寫成列向量形式

4、v = diag(x)返回矩陣x的主對角線上的元素,類似於diag(x,k),k=0的情況例5:

v=[1 0 0;0 3 0;0 0 3];

diag(v)

ans =13

3或改為:

v=[1 0 3;2 3 1;4 5 3];

diag(v)

ans =13

3注:把主對角線的資料取出寫成列向量形式

5、diag(diag(x))

取出x矩陣的對角元,然後構建乙個以x對角元為對角的對角矩陣。

例6:

x=[1 2;3 4]      

diag(diag(x))

x =1     2

3     4

ans =

1     0

0     4

MATLAB中的diag函式

diag函式功能 矩陣對角元素的提取和建立對角陣 設以下x為方陣,v為向量 1 x diag v,k 當v是乙個含有n個元素的向量時,返回乙個n abs k 階方陣x,向量v在矩陣x中的第k個對角線上,k 0表示主對角線,k 0表示在主對角線上方,k 0表示在主對角線下方。例1 v 1 2 3 di...

MATLAB中的diag函式

diag函式功能 矩陣對角元素的提取和建立對角陣 設以下x為方陣,v為向量 1 x diag v,k 當v是乙個含有n個元素的向量時,返回乙個n abs k 階方陣x,向量v在矩陣x中的第k個對角線上,k 0表示主對角線,k 0表示在主對角線上方,k 0表示在主對角線下方。例1 v 1 2 3 di...

Python NumPy中的diag函式

摘自 numpy包中的內建diag函式很有意思。假設建立乙個1維陣列a,和乙個3 3陣列b import numpy as np a np.arange 1,4 b np.arange 1,10 reshape 3,3 結果如下 a array 1,2,3 b array 1,2,3 4,5,6 7...