vech_JPH {lazy.symbolic} | R Documentation |
正方行列の下三角または上三角のベクトル化
Description
英語のヘルプファイルは: vech
Arguments
S |
下半分または上半分の要素をベクトル化する正方行列または配列 |
nodiag |
= 1 の場合は対角要素を省略 |
byrow |
= 0 の場合は列優先でベクトル化 |
lowerh |
= 0 の場合は上三角をベクトル化 |
Details
M を 4 x 4 行列とする。
byrow=1 かつ lowerh=1 の場合:
vech(M)=c( m11, m21, m22, m31, m32, m33, ..., mn1, mn2, ..., mnn )
byrow=1 かつ lowerh=0 の場合:
vech(M)=c( m11, m12, m13, ..., m1n, m22, m23, m24, ..., m2n, ..., mnn )
byrow=0 かつ lowerh=1 の場合: 行優先で下三角をベクトル化:
vech(M)=c( m11, m21, m31, ..., mn1, m22, m32, ..., mn2, m33, ...., mnn )
byrow=0 かつ lowerh=0 の場合: 行優先で上三角をベクトル化:
vech(M)=c( m11, m12, m22, m13, m23, m33, m14, ..., m44, m1n, m2n, ...., mnn )
注意: vech(M,lowerh=0) と vech(t(M),lowerh=1) は
行名以外は同じです。
元の行列を復元するには vechinv
を使用してください。
Value
S が行列の場合は列ベクトル、配列の場合は行列を返します。
Examples
ndim=5
M=demomat(ndim,ndim,root="m")
cat("nodiag=0: byrow=1, lower=1 and byrow=0, lower=1\n")
Print(vech(M,0,1,1),vech(M,0,0,1))
cat("nodiag=0: byrow=1, lower=0 and byrow=0, lower=0\n")
Print(vech(M,0,1,0),vech(M,0,0,0))
cat("nodiag=1: byrow=1, lower=1 and byrow=0, lower=1\n")
Print(vech(M,1,1,1),vech(M,1,0,1))
cat("nodiag=1: byrow=1, lower=0 and byrow=0, lower=0\n")
Print(vech(M,1,1,0),vech(M,1,0,0))
cat("同じ結果になるはずです。")
Print(vech(M,lowerh=0), vech(t(M),byrow=0))
# 名前付きのネイティブベクトルに変換
printm(vech(M),c(vech(M)))
[Package lazy.symbolic version 1.0.0.20250830 ]