3

MATLABのプログラムによって生成されたdiehardを使用していくつかの「乱数」をテストする必要があります。Diehardは32ビットのバイナリファイル(単精度)のみを受け入れますが、MATLABにデータを保存すると、倍精度のバイナリファイルに保存されます(つまり、2 * 64 = 128ビットのバイナリファイル)。64ビットシステムで動作するMATLABで32ビットバイナリファイルを作成するにはどうすればよいですか?

4

2 に答える 2

6

特定の形式でバイナリ ファイルにデータを読み書きする場合は、関数FREAD / FWRITEを使用する必要があります。たとえば、これは 100 個のランダムな値を 32 ビット浮動小数点数としてファイルに書き込みます。

A = rand(1,100);
fid = fopen('temp.dat','wb');
fwrite(fid,A,'float32');
fclose(fid);

MATLAB でのファイル IO の詳細については、他の関連する SO 投稿をチェックすることもできます: hereおよびhere

于 2009-06-03T19:32:54.733 に答える
3

gnovice のソリューションに加えて、次のように乱数を「単一」として生成することもできます。

rand(1, 100, 'single')
于 2009-06-03T20:15:40.857 に答える