我有一个数据文件(.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
前三个表示节点(name,feature1,feature2),而后三个表示每个节点(节点A,节点B,节点C)之间的关系。如您所见,节点和关系采用不同的格式(节点=字符串数字数字,而relations =字符串,数字数字字符串)。最后,我将根据他们的初始特征和时间关系来绘制它们。我尝试了几件事,但节点有3个参数和边有4个参数的东西使得它很难解决。
所以,基本上,我想逐行阅读文本文件,我希望能够定义所有节点,并将节点的所有参数都作为字符串数字数字,并定义所有关系以及绘图他们最终。
感谢任何帮助。
答案 0 :(得分: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循环结束。