Как сохранить данные в 32-битном двоичном файле в Matlab? - PullRequest
3 голосов
/ 03 июня 2009

Я должен протестировать некоторые «случайные числа» с несгибаемыми значениями, сгенерированными программой в MATLAB. Diehard принимает только 32-битный двоичный файл (одинарной точности), но если я сохраняю свои данные в MATLAB, они сохраняются в двоичном файле с двойной точностью (поэтому 2 * 64 = 128-битный двоичный файл). Как я могу создать 32-битный двоичный файл в MATLAB, работающий в 64-битной системе?

Ответы [ 2 ]

6 голосов
/ 03 июня 2009

Если вы хотите читать / записывать данные в двоичный файл в определенном формате, вам следует использовать функции FREAD / FWRITE . Например, это приведет к записи 100 случайных значений в файл в виде 32-разрядных чисел с плавающей запятой:

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

Для получения дополнительной информации о IO файла в MATLAB, вы также можете проверить эти другие связанные сообщения SO: здесь и здесь .

3 голосов
/ 04 июня 2009

В дополнение к решению gnovice вы можете сгенерировать случайные числа как «одинарные», например:

rand(1, 100, 'single')
...