在MatLab中读取二进制文件

时间:2012-02-18 16:59:04

标签: c++ matlab

在C ++中,我在二进制文件中编写了数据。我的数据是这样的:float data[a][b](这是在C ++中)。现在,我只想从Matlab读取这个二进制文件(当然,我在matlab中很新),得到A数组(A = data[a][b])。我在谷歌搜索许多解决方案,如:

frid = fopen('data.bin', 'rb');
A = fread(fid,count,type)
...

但是,也许是因为我是新手,这些解决方案对我不起作用!

任何人都可以给我一个读取此数据的建议吗?欢迎任何答案!谢谢!

3 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。查看fread函数的文档(google“matlab fread”)。 fread需要文件指针(“frid”),要读取的项目数和类型。您必须查看数据的二进制类型。所以它看起来像:

A = fread(frid, 100, 'real*4');  

其中100是要读取的元素数。

答案 1 :(得分:1)

你几乎得到了正确的答案。对于您的情况,您需要

fid = fopen('data.txt','rb');
A = fread(fid,[rows cols],'float');

我假设虽然您为文件名写了'data.txt',但该文件实际上并不是文本文件。您可能需要转置A以获得您期望的布局,具体取决于您最初编写数据的方式。

答案 2 :(得分:0)

您的数据的扩展名是什么?如果它在* .txt文件中,那么你可以通过

打开它

data = textread('myfile.txt','%f');

转到http://www.mathworks.com/help/techdoc/ref/textread.html寻求更多帮助......