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);