2014-08-28 80 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