2016-09-09 42 views
0

閱讀空間分隔的浮點值我正在讀利用MATLAB的textscanfunction的文本文件。 這裏的問題是value中沒有任何內容正在讀取,因爲浮點以三個空格分隔,而我在MATLAB編程中使用一些有效的語法方面很新穎。下面我當前的代碼給出:MATLAB:從TEX文件

代碼:

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]'); 

除了標記化之外,是否有解決方案?

+0

你可以給你想要讀取的文件提供一個示例字符串嗎?例子你的輸入是怎樣的)? – selyunin

回答

1

你需要指定一個分隔符,你也應該激活MultipleDelimsAsOne爲了治療重複空間作爲一個單一的分隔符:

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

如果需要

del = {';',' '}; 
:您還可以同時指定多個分隔符210
+0

這不起作用。你確定格式說明符字符串中有空格嗎? –

+0

查看文檔中的示例,您似乎可以使用單個空格作爲分隔符。你嘗試過嗎? –

+0

我編輯了我的答案,我在你的示例中測試了這段代碼,一切正常。 – obchardon

0

如果您不必使用textscan,則可以使用importdata。在那裏你可以指定分隔符作爲參數。 文檔http://se.mathworks.com/help/matlab/ref/importdata.html

代碼示例

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

我正在逐行讀取文件。我可能不得不改變整個邏輯來使用導入數據。 –