MATLAB中的diag函式

2021-07-05 03:40:39 字數 1519 閱讀 2752

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 00 

0 0 

0 2 00 

0 0 

0 0 30 

0 0 

0 0 00 

0 0 

0 0 00 

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 00 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 = 0

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

4、v = diag(x)

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

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

diag(v)

ans = 1

33或改為:

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

diag(v)

ans = 1

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

5、diag(diag(x))

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

例6:

x=[1 2;3 4] 

diag(diag(x))

x = 1 

23 4

ans = 1 

00 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...

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...

Python NumPy中diag函式的使用說明

numpy包中的內建diag函式很有意思。import numpy as np a np.arange 1,4 b np.arange 1,10 reshape 3,3 結果如下 a arr程式設計客棧ay 1,2,3 b array 1,2,3 4,5,6 7,8,9 使用diag函式,看一看結果...