【发布时间】: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