vechindex_JPH {lazy.symbolic}R Documentation

vech(Mat) と Mat を相互変換するためのインデックスを返す

Description

英語のヘルプファイルは: vechindex

Arguments

n

行列の行数および列数

nodiag

= 1 で対角要素を省略

byrow

= 1

lowerh

= 1

type

= 1 ベクトル形式のインデックスを生成
= 2 行列形式のインデックスを生成

i

行インデックス

j

列インデックス

Details

A を n x n 行列とする。
A から vech(A) を作成する場合:
index <- vechindex(n); vechA <- A[index]
これは vechA = vech(A) と同等である。
下三角要素に含まれる要素を確認する場合は:
index <- vechindex(n, type=2)
これにより、(i,j) の組み合わせを行列として得られる。

vechA から A を復元する場合:
index <- vechindex(n); A[index] <- vechA
これは A <- vechinv(vechA) と同等である。

i, j (i >= j) が指定された場合、vech(A) 内の A[i,j] の位置が 同じサイズのベクトルとして返される。

文字行列にも使用可能。

Value

インデックスのベクトルまたは行列

Examples

# vech の動作を vechindex で再現
ndim = 4
M = demomat(ndim, ndim, root="m")
vechM = vech(M); vechM2 = M[vechindex(ndim)]
Print(vechM, vechM2)
vechM = vech(M, byrow=0); vechM2 = M[vechindex(ndim, byrow=0)]
Print(vechM, vechM2)
vechM = vech(M, lowerh=0); vechM2 = M[vechindex(ndim, lowerh=0)]
Print(vechM, vechM2)
vechM = vech(M, byrow=0, lowerh=0); vechM2 = M[vechindex(ndim, byrow=0, lowerh=0)]
Print(vechM, vechM2)

# vechinv の動作を vechindex で再現
M2 = matrix(NA, ndim, ndim)
M2[vechindex(ndim)] = vech(M)
Print(M2)
M2 = matrix(NA, ndim, ndim)
M2[vechindex(ndim, lowerh=0)] = vech(M, lowerh=0)
Print(M2)

# ベクトルインデックス k から i, j
n <- 5
ij <- vechindex(n, type=2)
# i, j から k
k <- vechindex(n, i=ij[,1], j=ij[,2])
Print(ij, k)


[Package lazy.symbolic version 1.0.0.20250830 ]