在具有不同字段的现有混合数字和字符串文本文件上写入
Posted
技术标签:
【中文标题】在具有不同字段的现有混合数字和字符串文本文件上写入【英文标题】:Writing on an existing mixed numeric and string text file with different field 【发布时间】:2014-06-24 11:28:18 【问题描述】:我有一个混合的数字和字符串文本文件,其中不同的字段由 [ ] 分隔。它的一些内容是这样的:
[JUNCTIONS]
;ID Elev Demand Pattern
2 0 0 ;
9 0 0 ;
5 0 11 ;
6 0 20 ;
[RESERVOIRS]
;ID Head Pattern
1 5 ;
4 50 ;
[PIPES]
;ID Node1 Node2 Length Diameter Roughness MinorLoss Status
66 2 9 1000 250 100 0 Open ;
2 9 4 1000 150 100 0 Open ;
3 9 5 1000 150 100 0 Open ;
4 2 6 1000 150 100 0 Open ;
我想覆盖 MATLAB 中“需求”和“粗糙度”列下方的数值变量。 请你帮帮我。看了Matlab的导入导出命令的性能,没找到解决办法。
【问题讨论】:
如果您正在编辑,请确保数据垂直对齐。 【参考方案1】:这是一个小脚本,可以将您的所有数据读入一个元胞数组。每个单元格是一列数据。正如 Divakar 所说,使您的数据垂直对齐,否则当其中一行与最后一行不同时,textscan 将停止。
fid = fopen(file,'r');
while 1
line=fgetl(fid);
if ~strcmp(line,'')
if ~isempty(strfind(line,'['))
% //Let's check it
start = strfind(line,'[');
split = strfind(line,']');
category = line(start+1:split-1);
if strcmp(category,'PIPES')
break;
end
end
end
end
% //skip the header line
line=fgetl(fid);
% //So now we're on the right line, let's read in the table.
data = textscan(fid,'%d %d %d %d %d %d %d %s');
fclose(fid);
【讨论】:
以上是关于在具有不同字段的现有混合数字和字符串文本文件上写入的主要内容,如果未能解决你的问题,请参考以下文章
具有混合数据类型(文本、数字、分类)的 Python scikit-learn 分类