當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R Diagonal 構建對角矩陣


R語言 Diagonal 位於 Matrix 包(package)。

說明

構造一個正式的對角線 Matrix ,即從虛擬類 diagonalMatrix 繼承的對象(或者,如果需要,一個數學對角線 CsparseMatrix )。

用法

Diagonal(n, x = NULL, names = FALSE)

.sparseDiagonal(n, x = NULL, uplo = "U", shape = "t", unitri = TRUE, kind, cols)
    .trDiagonal(n, x = NULL, uplo = "U", unitri = TRUE, kind)
   .symDiagonal(n, x = NULL, uplo = "U", kind)

參數

n

指示(方)矩陣維度的整數。如果丟失,則使用length(x)

x

列出對角線條目的值的數字或邏輯向量,根據需要回收。如果NULL(默認值),則結果是單位對角矩陣。 .sparseDiagonal() 和朋友在 kind = "n" 時忽略非 NULL x

names

logical TRUEFALSElength ncharacter 向量。如果為 true 並且 names(x) 不是 NULL ,則將其用作結果矩陣的行名稱和列名稱。當是字符向量時,將其用於兩個暗名稱。

uplo

c("U","L") 之一,如果結果是形式上對稱的三角形,則指定結果的 uplo 槽。

shape

c("t","s","g") 之一,指示結果是否應為形式三角形、對稱或“general”。結果將分別繼承自虛擬類 triangularMatrixsymmetricMatrixgeneralMatrix

unitri

邏輯指示對角線上有 1 的形式三角形結果是否應該是形式單位三角形,即 diag 槽等於 "U" 而不是 "N"

kind

c("d","l","n") 之一,指示結果的 “mode”:數字、邏輯或模式。結果將分別繼承自虛擬類 dsparseMatrixlsparseMatrixnsparseMatrix 。當x 為非NULL 時,忽略"n" 以外的值;在這種情況下,模式由 typeof(x) 確定。

cols

可選整數向量,其值在 0:(n-1) 中,索引指定對角矩陣的列。如果指定,則結果(在數學上)為 D[, cols+1] 而不是 D ,其中 D = Diagonal(n, x) ,並且它始終為 “general” (即忽略 shape )。

Diagonal() 返回一個繼承自虛擬類 diagonalMatrix 的對象。

.sparseDiagonal() 返回 Diagonal(n, x)CsparseMatrix 表示,或者,如果給出 cols,則返回 Diagonal(n, x)[, cols+1] 的表示。結果的精確類別取決於 shapekind

.trDiagonal().symDiagonal() 分別是 .sparseDiagonal(shape = "t").sparseDiagonal(shape = "s") 的簡單包裝器。

.sparseDiagonal() 的存在主要是為了利用可用於 CsparseMatrix 的高效 C-level 方法。

例子


Diagonal(3)
Diagonal(x = 10^(3:1))
Diagonal(x = (1:4) >= 2)#-> "ldiMatrix"

## Use Diagonal() + kronecker() for "repeated-block" matrices:
M1 <- Matrix(0+0:5, 2,3)
(M <- kronecker(Diagonal(3), M1))

(S <- crossprod(Matrix(rbinom(60, size=1, prob=0.1), 10,6)))
(SI <- S + 10*.symDiagonal(6)) # sparse symmetric still
stopifnot(is(SI, "dsCMatrix"))
(I4 <- .sparseDiagonal(4, shape="t"))# now (2012-10) unitriangular
stopifnot(I4@diag == "U", all(I4 == diag(4)))

作者

Martin Maechler

也可以看看

用於從矩陣中提取對角線的通用函數diag適用於所有“Matrices”。

bandSparse 從其非零子/超對角線構造帶狀稀疏矩陣。 band(A) 返回一個帶狀矩陣,其中包含 A 的一些子/上對角線。

Matrix 用於一般矩陣構造;此外,類 diagonalMatrix

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Construct a Diagonal Matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。