【问题标题】:read binary file into a 2d array matlab将二进制文件读入二维数组matlab
【发布时间】:2011-12-24 14:32:36
【问题描述】:

我使用此代码片段将二进制文件读入数组

 fid=fopen('data.bin','rb') % opens the file for reading
 A = fread(fid, count, 'int16') % reads _count_ elements and stores them in A

但它将文件读入一维数组。有没有一种直接的方法可以将二进制文件读入二维数组,而无需我编写循环来做到这一点?

【问题讨论】:

    标签: matlab file-io binary


    【解决方案1】:

    我相信这就是你所需要的:

    fid = fopen('data.bin','rb');
    A = fread(fid, [rows columns], 'int16')
    

    【讨论】:

      【解决方案2】:

      您必须事先知道要读取的矩阵的行数/列数。这样您就可以将值作为数组读取,然后将结果重新整形为预期的大小:

      A = reshape(A,[r c]);
      

      【讨论】:

      • 我的一维数组长度是 11139。我怎样才能利用重塑功能。当我尝试做 B = reshape(A,100,111) 我得到一个错误 Error using ==> reshape To RESHAPE 元素的数量不能改变。我什至不能做 reshape(A,100,111.39) 或 reshape(A,100,112)。
      • 问题是,正如 Amro 所说,您需要知道预期的行/列...如果您期望 11100 个元素,并且您正在阅读更多内容,那么问题来自于方式你读了文件
      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 2017-12-01
      • 2011-05-14
      • 1970-01-01
      • 2014-04-06
      • 2014-09-13
      相关资源
      最近更新 更多