【问题标题】:Read data from binary file into matlab, split into vector将二进制文件中的数据读入matlab,分割成向量
【发布时间】:2014-08-13 11:44:13
【问题描述】:

我需要帮助将二进制文件中的数据读入一个 100000x16 维度的数组。我正在使用八度音阶。

这是文件外观截图的链接:http://s29.postimg.org/uclh7whtz/Screenshot.png

我尝试过使用 fscanf 和 fread,但不知道如何使用它们 - 使用它们会影响精度,等等...

感谢您的帮助!

【问题讨论】:

    标签: matlab file binary octave


    【解决方案1】:

    您也可以通过以下方式在MATLAB中使用"dlmread"函数。

    a=dlmread('file.dat','\t',1,0);
    

    这将跳过标题行并读取完整的数字矩阵。这是一个例子:

    file name=example.dat
    
    time    x1  y1  z1
    0.000   0.084   0.015   0.0181
    0.016   0.008   0.001   0.8012
    0.032   0.081   0.064   0.235
    
    a=dlmread('example.dat','\t',1,0);
    
    a =
    
             0    0.0840    0.0150    0.0181
        0.0160    0.0080    0.0010    0.8012
        0.0320    0.0810    0.0640    0.2350
    

    请通过dlmread 帮助获取更多帮助。

    【讨论】:

      【解决方案2】:

      如果它搞砸了精度,很有可能您只需将 16 行的值指定为浮点数 %f,如下所示:

       fid=fopen(strcat(Name,'.dat'));
       C=textscan(fid, '%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f'); % one '%f' for row, is that 16?
       fclose(fid);
      

      这当然会忽略标题(但我猜你想以任何方式这样做,不是吗?)。

      【讨论】:

        猜你喜欢
        • 2013-06-22
        • 2011-12-24
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-03
        相关资源
        最近更新 更多