【问题标题】:Read a binary file in MatLab在 MatLab 中读取二进制文件
【发布时间】:2012-02-19 10:23:45
【问题描述】:

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

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

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

谁能给我一个阅读这些数据的建议?欢迎任何答案!谢谢!

【问题讨论】:

    标签: c++ matlab


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        打开它

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

        请转至http://www.mathworks.com/help/techdoc/ref/textread.html 获取更多帮助...

        【讨论】:

        • 这个问题似乎很清楚,数据是“在二进制文件中”。文件扩展名与textread是否可以使用无关,只有格式决定。而textread 对二进制格式没有帮助。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        • 1970-01-01
        • 2013-09-09
        • 2023-03-11
        • 1970-01-01
        • 2013-06-22
        • 2014-07-30
        相关资源
        最近更新 更多