3

画像に対してブロック SVD 分解を実行し、結果を保存しました。さて、この結果から再構築する必要があります。すべてMatlabで書かれた例はほとんど見つかりませんでしたが、これは私にとって謎です。自分の絵を再構築できる式、または C 言語で書かれた例だけが必要です。行列 A は U*S*V' に等しいです。たとえば、最初の 5 つの特異値 (行と列の積) を計算するための数式はどのようになりますか? C のようなスタイルのインデックスを使用して数式を指定してください。U と V' は行列で、S はベクトル (行列ではない) です。

4

2 に答える 2

1

質問が正しいかどうかはわかりませんが、特異値を知る必要がある場合は、それらは中央の行列 S の対角値です。一般に、S は対角行列であり、ここにベクトルとして格納されます。つまり、対角線だけが格納されます。行列計算で考えている場合は、行列として想像する必要があります。

これらの対角値は特異値です。最初に最大の特異値が必要な場合は、ベクトル S の 5 つの最大値を取るだけです。

ウィキペディアからの引用:

Σ の対角要素 Σi,i は、M の特異値として知られています。U の m 列と V の n 列は、それぞれ M の左特異ベクトルと右特異ベクトルと呼ばれます。

上記の引用では、sigma は S であり、M は元の行列です。

于 2014-01-03T10:56:09.600 に答える