【问题标题】:Reading a text file with varying length of lines读取具有不同行长的文本文件
【发布时间】:2015-11-22 05:33:46
【问题描述】:

我有一个数据文件(.txt),如下所示;

A 2.2 5
B 3.2 0.5
C 0 2
A 3 2 B
A 2 6 C
B 2.3 4.5 C

前三个代表节点(名称、特征1、特征2),而后三个代表每个节点之间的关系(节点A、节点B、节点C)。如您所见,节点和关系采用不同的格式(节点=字符串数字数字,而关系=字符串,数字数字字符串)。最后,我将根据它们的初始特征和时间关系绘制它们。我尝试了几件事,但是节点有 3 个参数而边有 4 个参数的事情很难解决。

所以,基本上,我想逐行读取文本文件,我希望能够定义所有节点并将节点的所有参数作为字符串数字数字并定义所有关系以进行绘图到最后。

感谢任何帮助。

【问题讨论】:

    标签: matlab text-files


    【解决方案1】:

    查看内置函数fgetl

    fid = fopen(filename);
    
    lineoftext = fgetl(fid);
    while ischar(lineoftext)
        C = strsplit(strtrim(lineoftext)); % this will be a cell array
        if length(C) == 3
            % then it's a node, put code here
        else
            % then it's relational, put code here
        end
        lineoftext = fgetl(fid);
    end
    
    fclose(fid);
    

    这将从文件中读取一行,将其拆分为元胞数组中的文本块,然后计算块的数量以查看它是节点还是关系字符串。您必须将自己的代码放入 if 语句中。然后它读入另一行并重新做一遍。当它到达文件末尾时,lineoftext = -1 和 while 循环结束。

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 2020-12-24
      相关资源
      最近更新 更多