在csv文件的内容中读取逗号,matlab

时间:2012-12-11 17:33:45

标签: matlab

我有一个包含逗号的csv文件。

%with dot

15.12.2012 11:27;   0.9884753
11.12.2012 11:12;   10.670.642
11.12.2012 10:57;   114.455.145

Gdata= textscan(fid, '%s %f')

效果很好。

%但是如何处理点

15.12.2012 11:27;   0,9884753
11.12.2012 11:12;   10,670.642
11.12.2012 10:57;   114,455.145

我怎么读呢。

的问候,

2 个答案:

答案 0 :(得分:1)

不幸的是,textscan不尊重语言环境设置,因此无法通过修改当前语言环境将逗号解释为小数点。作为解决方法,您可以读取整行,用逗号替换逗号,然后使用textscan来解析该行。

line = fgetl( fid );
line = strrep( line, ',', '.' );
Gdata = textscan( line, '%s %f' );

如果该行可能包含您不想替换的逗号,则可能不得不使用regexp或其他比简单strrep更漂亮的东西。

答案 1 :(得分:1)

由于存在','和'。'

,这可能会解决可能的不均匀现象
fid = fopen('data.d','r');
Gdata= textscan(fid, '%s %s','delimiter', ';' )

% // cancels '.' and sets ',' as '.'
f = @(i) str2double(regexprep(regexprep(i,'\.',''),',','\.'));

Num = cellfun(f,Gdata(2),'UniformOutput' , false);

Num{:}

         ans =

       0.9885
       10.6706
       114.4551
相关问题