读取由逗号和制表符分隔的行

时间:2016-11-10 07:16:38

标签: matlab io scanf textscan

我想读取每行中包含数字的文件。以下是格式的示例 -

0,0,0   1   0   0   0
0.02,0.1,0.98   8.77    0.985292    0.112348    0.112348
0.04,0.2,1.96   8.77    0.985292    0.112348    0.224696

如上所示,前三个数字用逗号分隔,之后所有其余数字由行中的制表符分隔。因此,无法使用dlmread或textscan。有什么办法可以解决吗?谢谢!

1 个答案:

答案 0 :(得分:2)

是的,您应该在函数中添加两个参数:

Delimiter %choose the delimiter

MultipleDelimsAsOne %Treat Repeated Delimiters as One

选项1:

小"技巧"如果您将结构作为输入,则可以选择多个分隔符:{',',' '}

Result = textscan(fileID,'%f %f %f %f %f %f %f','Delimiter',{',',' '},'MultipleDelimsAsOne',1);

选项2:(应该可以)

这次我没有使用MultipleDelimsAsOne,但我确切地说分隔符可以是逗号或制表符(带\ t)。

Result = textscan(fileID,'%f %f %f %f %f %f %f','Delimiter',{',','\t'});