【问题标题】:import large data from .txt file into matlab将大数据从.txt文件导入matlab
【发布时间】:2015-03-17 09:22:31
【问题描述】:

我是 MATLAB 的新手。我有一个 .txt 文件,其中有 2 个标题行,共有 140000 行和 6 列。我只想提取包含任何一列感兴趣数据的前 116959 行,并将其存储为向量。我想进一步使用这个列向量进行 fft 分析。像这样我想读取多列并将它们存储为向量。

Time        T_hor   T_ver   V_hor   V_ver   SPEED   
s       um  um  um  um  Hz  
39,000000   8,833   -15,43  -11,871 23,604  701,17  
39,000200   3,121   -22,78  -9,949  41,712  701,17  
39,000400   -8,012  -26,28  -4,317  33,790  701,17  
39,000600   -13,092 -20,22  8,343   20,630  701,17  
39,000800   -16,408 -5,27   6,869   5,680   701,17  
39,001000   -10,591 5,36    1,895   -0,005  701,17  
39,001200   2,016   -0,01   -7,054  6,786   701,17  
39,001400   8,622   -14,06  -11,581 20,998  701,17  
39,001600   4,279   -22,17  -10,002 39,791  701,17  
39,001800   -7,117  -25,70  -5,738  35,106  701,17  
39,002000   -12,697 -20,99  6,948   22,314  701,17  
39,002200   -16,355 -6,83   6,738   7,602   701,17  
39,002400   -11,960 5,68    2,079   0,469   701,17  
39,002600   0,463   2,10    -6,422  5,759   701,17  
39,002800   8,964   -11,91  -11,765 19,498  701,17  

这就是数据的样子(忽略逗号(,),数据是德文格式,相当于“39.0012”)。我尝试使用带有空格分隔符的 importdata。但它给了我错误。以下是我使用的代码。

filename = 'Test_Data.txt';
delimiterIn = ' ';
headerlinesIn = 2;
A = importdata(filename,delimiterIn,headerlinesIn);   

for k = [3, 5] % Extracting 3rd and 5th column
   disp(A.colheaders{1, k})
   disp(A.data(:, k))
   disp(' ')
end

使用此方法时出现错误。我想我缺少一些更简单和合乎逻辑的东西。有人可以对此有所了解。

【问题讨论】:

  • 此处讨论了点和逗号的类似问题:stackoverflow.com/questions/8204080/…
  • 感谢您的评论。我检查了那个代码。除了转换。我的问题是“如何读取和存储为单列向量”
  • fread 将是最有效的,但importdata 可能是最简单的加载和稍后转换数据的方法。但是速度有点慢。
  • @c.colden 当我使用 fread 时它返回一个值'0'
  • 抱歉,我的意思是 fscanf - fread 仅适用于二进制文件。再次抱歉。更多信息请查看ch.mathworks.com/help/matlab/ref/fscanf.html

标签: matlab large-data


【解决方案1】:

如果可能的话,我会建议你:去掉空格,用逗号代替它们,用点代替你的逗号。像使用 importdatafreaddlmread 一样加载此文件。现在您可以非常轻松地访问数据,就像您在示例中展示的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 2018-04-12
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多