在具有不同字段的现有混合数字和字符串文本文件上写入

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

【讨论】:

以上是关于在具有不同字段的现有混合数字和字符串文本文件上写入的主要内容,如果未能解决你的问题,请参考以下文章

从 db 写入现有 Excel 文件但具有不同的标题

c#无法将文本附加到现有文件[关闭]

如何计算给定 csv/psv 混合文本文件中的不同字段?

具有混合数据类型(文本、数字、分类)的 Python scikit-learn 分类

Matlab:具有混合字符/双条目的单元格列 - 如何使所有数字化?

验证具有前两位数字和一个字母的字段