2014-08-28 142 views
0

我想從Matlab中的txt文件中替換逗號來點,但我沒有得到。按照下面我的代碼:使用uigetfile將逗號替換成點

[nome,caminho]=uigetfile({'*.pal';'*.sjc'},'Selecione Arquivos para Palmas ou SJCampos'); 
newfile= [caminho nome]; 
fid=fopen(newfile,'rt') 

data_iono=textscan(fid,'%f%f%f%f%f%s%s',-1,'Delimiter','\t','HeaderLines' ,3,'treatAsEmpty',{'-','R','F','N','Y'}); 
fclose(fid); 

任何人都可以幫助我嗎?

不勝感激!

+0

你能提供一個你正在導入的文件的例子嗎?你能舉一個你得到的結果和你想要的結果的例子嗎? – sclarke81 2014-08-28 14:41:17

+0

你在導入的文件上嘗試過'strrep(str,',','。')嗎? – Jommy 2014-08-28 16:09:55

+0

是* .dat和* .txt文件。當我使用uigetfile命令時,我選擇文件並導入數據,並存儲在fid變量中(例如:UT = 0,12),所以我需要將其轉換爲UT = 0.12.Thanks! – 2014-08-28 16:16:42

回答

0

我不確定哪列有逗號,但可以說是列4。

[nome,caminho]=uigetfile({'*.pal';'*.sjc'},'Selecione Arquivos para Palmas ou SJCampos'); 
newfile= [caminho nome]; 
fid=fopen(newfile,'rt') 

data_iono=textscan(fid,'%f%f%f%s%f%s%s',-1,'Delimiter','\t','HeaderLines' ,3,'treatAsEmpty',{'-','R','F','N','Y'}); 
fclose(fid); 

data_iono{4} = str2double(strrep(data_iono{4}, ',', '.')); 

正在發生的事情是,我們正在導入包含逗號作爲字符串的列,用句點替換該列中的逗號,然後列轉換爲數字。

+0

嗨sclarke81!我試過使用這個命令,但它不起作用。看到消息:單元格元素必須是字符數組。謝謝! – 2014-08-30 01:23:46

+0

這聽起來像你沒有更新textscan命令。您可以看到我將第四個'%f'更改爲'%s',以將第四列作爲字符串導入。如果您無法提供示例文件,我可以提供多少幫助,這是有限制的。 – sclarke81 2014-08-30 06:06:30

+0

我如何發送* .txt文件的例子給你? – 2014-09-02 23:40:58