diag

diag

函式功能:函式在FreeMat、Matlab中該函式用於構造一個對角矩陣(不功能:在FreeMat、Matlab中該函式用於構造一個對角矩陣(不在對角線上元素全為0的方陣)或者以向量(在matlab中,1*n、n*1的矩陣都可以看做是一個向量)的形式返回一個矩陣上對角線元素。

函式簡介

語法格式:

FreeMat中該函式語法:

y = diag(x,n)

如果x是一個矩陣,y就是x中第n條對角線上的元素。如果n被忽略,n的默認值是0,即返回主對角線上元素。

Matlab中該函式語法:

X = diag(v,k)

其中v是一個含有n個元素的向量,該調用格式可以構造一個n+abs(k)階的方陣X。並把v作為方陣X的第k條對角線(k大於0,表示主對角線上方的第k條對角線,k小於0表示主對角線下側的第k條對角線,k等於0表示主對線)。如圖1

圖1圖1

X = diag(v)

等價於X = diag(v,0)

v = diag(X,k)

以向量形式返回矩陣X中第k條對角線上的元素。

v = diag(X)

等價於v = diag(X, 0)

相關函式:diag、rank、det、eig、blkdiag、spdiags

程式示例

FreeMat中示例:

--> A = [1 2 3; 4 5 6; 7 8 9];

--> diag(A)

ans =

1

5

9

--> sum(diag(A))

ans = 15

--> trace(A)

ans = 15

Matlab中示例:

% 構造對角矩陣

>> v = [1 1 1];

>> X = diag(v)

X =

1 0 0

0 1 0

0 0 1

>> X = diag(v, 1)

X =

0 1 0 0

0 0 1 0

0 0 0 1

0 0 0 0

% 以向量形式返回對角矩陣上指定對角線上元素

>> v= diag(X)

v =

0

0

0

0

>> v= diag(X,1)

v =

1

1

1

矩陣的示例:

A=[1,2,3

4,5,6

7,8,9]

A =

1 2 3

4 5 6

7 8 9

>> diag(A)

ans =

1

5

9

>> diag(diag(A))

ans =

1 0 0

0 5 0

0 0 9

數學符號

線上性代數中,diag(a,b,c…)表示一個對角矩陣(即指除了主對角線外的元素均為零的方陣)。

相關詞條

相關搜尋

熱門詞條

聯絡我們