在C ++中,我在二进制文件中编写了数据。我的数据是这样的:float data[a][b]
(这是在C ++中)。现在,我只想从Matlab读取这个二进制文件(当然,我在matlab中很新),得到A数组(A = data[a][b]
)。我在谷歌搜索许多解决方案,如:
frid = fopen('data.bin', 'rb');
A = fread(fid,count,type)
...
但是,也许是因为我是新手,这些解决方案对我不起作用!
任何人都可以给我一个读取此数据的建议吗?欢迎任何答案!谢谢!
答案 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寻求更多帮助......