【问题标题】:Reading list of values from text file into MATLAB将文本文件中的值列表读入 MATLAB
【发布时间】:2019-10-28 10:07:22
【问题描述】:

我有一个包含两列数据的文本文件,以逗号分隔。但是,前 10 行包含我不需要的信息。

输入文本文件如下所示:

# PROGRAM NAME                                      
# The first 10 lines are info I don't need        
#                                           
#                                                                                 
#  
#

892
5
564
1, 0.4377E-014
2, 0.0673E+000
...

我正在尝试编写一个代码,它将从第 11 行开始的值对读取到一个 2 列矩阵中。

到目前为止,我的(失败的)尝试如下:

fin = fopen(fullfile(cd, file_name), 'r');
tLine = fgets(fin);
while ischar(tLine)
    crit_list = [crit_list; tLine(:)];
end

我的意图是在代码执行后删除矩阵的前 10 行,然后在值对上使用 str2num,但我不确定这是否会非常有效。

如何从第 11 行开始将该文件读入 MATLAB?

【问题讨论】:

    标签: matlab matrix file-io text-files


    【解决方案1】:

    importdata 可以跳过标题行:

    importdata(file_name,delimiter,10);  % skip 10 header lines
    

    你必须在哪里指定你的分隔符,判断你想要delimiter = ','的文件,即逗号。

    【讨论】:

    • 有没有更快的方法来做到这一点?当我想读取更大的文件时,我看到程序需要一秒钟的时间来执行一个只有 120 个值的测试列表......
    • @najusten 时间很长,因为打开文件需要时间(您的程序与操作系统对话并等待读取它)。 1200 个值可能只需要多花 5% 的时间。先试试吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2011-03-04
    • 1970-01-01
    相关资源
    最近更新 更多