Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我对matlab的了解只是在需要了解的基础上,因此这可能是一个基本问题。尽管如此,它来了:
我有一个包含以二进制格式存储的数据(16位整数)的文件。如何在Matlab中将其读入向量/数组?如何将此数据写入matlab中的文件?读写大量数据(千兆字节)时,是否有任何智能调整可提高性能速度? 回答: 正如蜥蜴人Bill所写,您可以使用fread将数据加载到向量中。我只想扩大他的答案。 读取数据 >> fid=fopen('data.bin','rb') % opens the file for reading >> A = fread(fid, count, 'int16') % reads _count_ elements and stores them in A. 命令fopen和fread缺省为整数的Little-endian [1]编码。如果您的文件是Big-endian编码的,则需要将fread更改为 >> A = fread(fid, count, 'int16', 'ieee-be'); 另外,如果您想读取整个文件集 >> count=inf; 如果您想将数据读入n列矩阵 >> count=[n inf]; 写数据 至于将数据写入文件。 Bill的答案中的命令fwrite将写入二进制文件。如果要将数据写入文本文件,可以使用dlmwrite >> dlmwrite('data.csv',A,','); 参考文献 [1] http://en.wikipedia.org/wiki/Endianness 更新资料
|
![]() |
![]() |