共分散行列を標準偏差で規格化したもの,つまり相関行列に対してSVDを行い,右特異行列,左特異行列を出力する関数
pcVar = svdstd_sv(x, y, nsvd, svLeft, svRight)
〔入力変数〕
x[*][*]
物理量1のデータが入った空間数(M1)×時間数(N)の2次元配列。欠損値を含んではならない。
y[*][*]
物理量2のデータが入った空間数(M2)×時間数(N)の2次元配列。欠損値を含んではならない。
nsvd
求める特異値の個数(整数)
svLeft[*][*]
物理量1に対応する左特異ベクトルを入れるための空白の配列。nsvd×M1の大きさの2次元配列を,newなどを用いて用意する。
svRight[*][*]
物理量2に対応する右特異ベクトルを入れるための空白の配列。nsvd×M2の大きさの2次元配列を,newなどを用いて用意する。
〔出力変数〕
pcVar[*]
各モードによって説明される分散の割合を含む,nsvdの長さの1次元配列。
@sv
各モードに対応する特異値。
svLeft[*][*]
物理量1に対応する左特異行列。nsvd×M1の大きさの2次元配列。
svRight[*][*]
物理量2に対応する右特異行列。nsvd×M2の大きさの2次元配列。
この関数は欠損値を扱えないことに注意。したがって,データに欠損がある場合には,欠損でないところのみ取り出してxやyの行列をつくる必要がある。