如何在matlab中将数据保存为32位二进制文​​件?

发布于 2024-07-22 05:31:02 字数 172 浏览 10 评论 0 原文

我必须用顽固分子测试一些由 MATLAB 中的程序生成的“随机数”。 Diehard 仅接受 32 位二进制文​​件(单精度),但如果我将数据保存在 MATLAB 中,它将保存在双精度二进制文件中(因此 2*64 = 128 位二进制文​​件)。 如何在 MATLAB 中创建在 64 位系统上运行的 32 位二进制文​​件?

I have to test some "random numbers" with diehard, generated by a program in MATLAB. Diehard accepts only a 32 bit binary file (single precision), but if I save my data in MATLAB, it is saved in a binary file with double precision (so 2*64 = 128 bit binary file). How can I create a 32 bit binary file in MATLAB, working on a 64 bit system?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最笨的告白 2024-07-29 05:31:02

如果您想以特定格式读取/写入数据到二进制文件,您应该使用函数 FREAD/ FWRITE。 例如,这会将 100 个随机值作为 32 位浮点数写入文件:

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

有关 MATLAB 中文件 IO 的更多信息,您还可以查看这些其他相关的 SO 帖子:此处此处

If you want to read/write data to a binary file in a specific format, you should use the functions FREAD/FWRITE. For example, this will write 100 random values to a file as 32-bit floats:

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

For more info about file IO in MATLAB, you can also check out these other related SO posts: here and here.

绿阴红影里的.如风往事 2024-07-29 05:31:02

除了 gnovice 的解决方案之外,您可能希望生成“单个”随机数,如下所示:

rand(1, 100, 'single')

Further to gnovice's solution, you may wish to generate the random numbers as 'single', like so:

rand(1, 100, 'single')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文