MATLAB:从tex文件

时间:2016-09-09 07:27:15

标签: matlab file textscan

我正在使用MATLAB的textscan function阅读文本文件。 这里的问题是value 中没有读取任何内容,因为浮点用三个空格分隔,我在MATLAB编程中很新,以使用一些有效的语法。我目前的代码如下:

代码:

values = textscan(input_file, '%f   %f   %f   %f   %f\n %*[^\n]');

输入文件遵循以下格式:

文件:

0.781844   952.962130   2251.430836   3412.734125   4456.016362
0.788094   983.834855   2228.432996   3196.415590   4378.885466
0.794344   967.653718   2200.798973   3119.844502   4374.097695

如果浮点值为#,则以下语句可以正常工作:

values = textscan(input_file, '%f#%f#%f#%f#%f\n %*[^\n]');

除了标记化之外还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

您需要指定分隔符,还应激活MultipleDelimsAsOne以将重复的空间视为单个分隔符:

value = textscan(input_file, '%f   %f   %f   %f   %f \n ','Delimiter',' ','MultipleDelimsAsOne',1);

如果需要,您还可以同时指定多个分隔符:

del = {';',' '};

答案 1 :(得分:0)

如果您不必使用文本扫描,则可以使用importdata。在那里,您可以将分隔符指定为参数。 文档http://se.mathworks.com/help/matlab/ref/importdata.html

代码示例

filename = 'myfile01.txt';
delimiterIn = '   ';
A = importdata(filename,delimiterIn);