Matrix<ObjectRef> 型のフレームのデータをファイルに保存する.サポートされている ObjectRef は float 型と complex<float> 型のみである.
無し.
どんなときに使うのか
このノードは,複数のフレームの Matrix<ObjectRef> 型データを1つのファイルに保存するために用いる.
典型的な接続例
下の図 6.127 は, MultiFFT が Matrix<complex<float> > 型のフレームのデータを出力する SaveMatrixFrames を使用したネットワークの例を示す.
入力
: Matrix<ObjectRef> 型のフレームのデータ. サポートされている型は Matrix<float> 型と Matrix<complex<float> > 型.
出力
: 複数のフレームの Matrix<ObjectRef> 型データを保存したファイル.
パラメータ
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
FILENAME |
出力ファイルのファイル名. |
|||
OUTPUTTYPE |
TEXT |
出力ファイルのファイル形式オプション. テキストファイルの場合はTEXT,バイナリファイルの場合はRAWを選択する. |
||
TEXTFORMAT |
FIXED |
OUTPUTTYPEをTEXTに設定した場合に出力するデータファイルのファイル形式オプション. FIXEDかSCIENTIFICを選択する. |
: string type. 出力ファイルのファイル名.
: string type. 出力ファイルのファイル形式オプション. テキストファイルの場合はTEXT,バイナリファイルの場合はRAWを選択する. デフォルト値はTEXT.
: string type. OUTPUTTYPEをTEXTに設定した場合に出力するデータファイルのファイル形式オプション. FIXEDかSCIENTIFICを選択する.
SaveMatrixFrames は,複数のフレームの Matrix<float> 型または Matrix<complex<float> > 型のデータを入力として受け取り,それらのすべてのデータを1つのファイルに保存する. ファイル形式は,OUTPUTTYPEパラメータで指定する. OUTPUTTYPEパラメータをRAWに設定すると,フレームのデータは,リトルエンディアン順にIEEE 754 32ビット単精度浮動小数点数形式で書き込まれる. このパラメータのデフォルト値TEXTは,RAWとは異なり人間が読めるデータを出力する.
表 6.125 に,OUTPUTTYPEパラメータでTEXTが選択されたときに,ファイル内でデータがどのようにフォーマットされるかの詳細を示す. 各データはスペースで区切られ,フレームのデータはラインフィードによってMatrixのサイズでフレームごとに分離される.
データ型 |
ファイルフォーマット |
|
Float |
data[0][0] data[0][1] data[1][0] data[1][1] ... data[m][n] |
|
data[0][0] data[0][1] data[1][0] data[1][1] ... data[m][n] |
||
Complex |
data[0][0].real() data[0][0].imag() data[0][1].real() data[0][1].imag() ... data[m][n].real() data[m][n].imag() |
|
float |
ここで,nとmは,フレームのデータが格納されている入力の行列の列サイズと行サイズである.
SaveMatrixFrames は,各フレームのデータを受け取ると,マトリックスの行と列のサイズをチェックする. 上のサンプルネットワーク(図 6.127)では, MultiFFT は Matrix<complex<float> > を出力する. 入力行列サイズがM×Lの場合,出力行列のサイズは MultiFFT ではM×L / 2 + 1であり,Mはチャネル数を表し,Lはサンプル数を表す. MultiFFT のウィンドウの長さはデフォルトで512である. Lの式を適用すると,列のサイズが257となる. チャネル数が8の場合,行サイズは8になる. MultiFFT 出力の詳細については, MultiFFT ノードリファレンスを参照されたい.
入力データが Matrix<float> 型に格納されていて,列サイズが512で行サイズが8で,合計6397のフレームがあるとすると,出力ファイルの内容は図 6.128のようになる. 表 6.125 に記述されているTEXTファイル形式でデータが保存されているものとする.
図 6.128 および図 6.129 の左側に書かれたフレーム番号は,ファイルに書き込まれないことに注意.
図 6.129 は,入力データが図 6.127のサンプルネットワークのような Matrix<complex<float> > 型の場合の出力ファイルのサンプル内容を示す.行サイズと列サイズはそれぞれ8と257. 合計で6397のフレームがある. また,データは表 6.125 に記述されているTEXTファイル形式で保存されているものとする.
Filename:
FILENAMEパラメータに値を指定するときは,フォーマット文字列と呼ばれるデータプロパティを持つ特別なパターン{tag:format}を使用するオプションを使用できる. フォーマット文字列を使用すると,入力データの情報を含んだファイル名を設定することができ,後の使用に便利である. 使用可能なタグを,表 6.126 に示す.
タグ |
説明 |
単位 |
datatype |
データ型 (float または complex float) |
String |
rowsize |
行列の行サイズ |
Integer |
colsize |
行列の列サイズ |
Integer |
dim |
データの次元 (固定値. 行列は2) |
Integer |
表 6.127 にフォーマット文字列とその出力の例を示す.
フォーマット文字列 (FILENAME パラメータ値) |
出力 (フォーマット指定されたファイル名) |
||
samplefile.dat |
samplefile.dat |
||
samplefile_{datatype}.txt |
samplefile_complex_float.txt |
||
samplefile_row{rowsize}.raw |
samplefile_row8.raw |
||
samplefile_col{colsize}.dat |
samplefile_col512.dat |
||
samplefile_dim{dim}.dat |
samplefile_dim2.dat |
||
samplefile_{datatype}_row{rowsize}_col{colsize}_dim{dim}.dat |
samplefile_complex_float_row8_col512_dim2.dat |
LoadMatrixFrames を使用して SaveMatrixFrames によって出力されたファイルを Matrix<ObjectRef> 型にロードするときは,列サイズ,行サイズ,およびデータ型をパラメータで指定する必要がある. したがって,ファイル名にデータ情報を持つことは,後の使用に役立つ.
表 6.127 に示されているように,ファイル名の拡張子に関する規則はない. ユーザーが指定する任意の値にすることができる. ファイル名の拡張子は無くても良い.
{tag:format}の "format"の値はオプション. "format"は,03dのような桁数を指定するために使用できる.フォーマット指定子は,Cのprintfと同じである.