我正在使用MATLAB的文本扫描 函数读取一个文本文件。这里的问题是,在value中没有读取任何浮点,因为浮点数是用三个空格分隔的,我在编程中使用一些有效的语法是很新的。我的当前代码如下:
代码:
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]');除了令牌化之外,还有其他解决方案吗?
发布于 2016-09-09 07:50:16
您需要指定一个分隔符,还应该激活MultipleDelimsAsOne,以便将重复的空间作为单个分隔符对待:
value = textscan(input_file, '%f %f %f %f %f \n ','Delimiter',' ','MultipleDelimsAsOne',1);如果需要,还可以同时指定几个分隔符:
del = {';',' '};发布于 2016-09-09 07:39:03
如果您不需要使用文本扫描,您可能会使用importdata数据。在那里,可以将分隔符指定为参数。文档http://se.mathworks.com/help/matlab/ref/importdata.html
代码示例
filename = 'myfile01.txt';
delimiterIn = ' ';
A = importdata(filename,delimiterIn);https://stackoverflow.com/questions/39406070
复制相似问题