MATLAB:从文本文件中读取数据,最后一行是字符串和;“合并”;柱

MATLAB:从文本文件中读取数据,最后一行是字符串和;“合并”;柱,matlab,file-io,header,Matlab,File Io,Header,我将一些模拟结果存储在一个大文本文件中,其格式类似于以下示例: ******* Information More Information Header 1 Header 2 Header 3 [Unit] [Unit] [Unit] 12345 67890 12345 12345 67890 12345 end 不必事先手动编辑文件,将其导入MATLAB的简单方法是什么?我知道我可以跳过标题行,

我将一些模拟结果存储在一个大文本文件中,其格式类似于以下示例:

******* Information
More Information

    Header 1   Header 2   Header 3
    [Unit]     [Unit]     [Unit]

    12345      67890      12345
    12345      67890      12345
end
不必事先手动编辑文件,将其导入MATLAB的简单方法是什么?我知道我可以跳过标题行,但对于最后一行中的
结尾
,我能做些什么?到目前为止,我一直使用
load()
并手动删除标题和最后一行,但我想摆脱这一额外步骤

此外,一列的条目有时会变得非常大,以至于与前一列相邻(使之成为一列),例如

load()
发生这种情况时,显然无法导入我的数据。我能做些什么

您可以找到原始数据集的简化版本。我的第二个问题出现在第15行的
sum(Evap)
TLevel
列中。

试试看。你可以用像这样的东西

data = textscan(fid, '%f %f %f', 'HeaderLines', 6);

它将读取所有数据,直到到达“结束”(与预期格式不匹配)。但这并不能解决数据列一起运行的问题。如果可以的话,这可能是在数据生成方面最容易解决的问题。

谢谢,这很有魅力。我的代码只是为了防止其他使用HYDRUS 1D的人(不幸的是,我无法创建新标记)偶然发现这一点:
nCol=22;formatSpec=repmat('%f',1,nCol);fileID=fopen('T_Level.out');数据=文本扫描(fileID,formatSpec,'HeaderLines',9);fclose(fileID)。我想我会手动解决数据列的问题,反正只发生两三次。
data = textscan(fid, '%f %f %f', 'HeaderLines', 6);