How to replace commas with dot

32 views (last 30 days)
Algirdas Kluonius
Algirdas Kluonius on 8 May 2013
Commented: Franciszek Aniol on 21 Apr 2020
Hello everyone can someone help me, I have german IFM optics sensor and it gives me a file with german formatting. That means comma instead of dot. So if i have a number 0,25 matlab can't understand it correctly, i need to change it from 0,25 to 0.25. I found a link which does not help, because it's faulty http://www.mathworks.com/matlabcentral/answers/51399
it suggests to use data = strrep (a, ',' , '.') but as i use it, yeah i get it 0.25 from 0,25 but if i try to test it and write: >> data>1 ans = 1 1 1 1
if i write data+1 ans = 49 47 51 54
can someone help me on this one, because later csv file has 50 rows like this "0,95084310;0,95006830;0,99675316;0,99362558;1, ...." which is actually a first column of a picture. Thanks in advance
  2 Comments
Algirdas Kluonius
Algirdas Kluonius on 9 May 2013
First answer is wrong because I have 64 values in a row and I can't write '%s' 64 times and it also does not work.

Sign in to comment.

Answers (2)

Andreas Goser
Andreas Goser on 9 May 2013
I created this one a million years ago - not sure if it works today:
function comma2dot()
%COMMA2DOT converts comma decimal separator data into dot decimal separator data
% COMMA2DOT() opens an ASCII file finds all comma characters, changes
% them into dot characters and saves the data as a new ASCII file
% V 1.0: Andreas Goser, 7.4.2001
[fname, pname]=uigetfile('*.*', 'ASCII data file with comma decimal separator');
if fname
data=char(textread([pname, fname], '%s', 'delimiter', '\n', 'whitespace', ''));
for k=1:size(data, 1)
f=findstr(data(k, :), ',');
data(k, f)='.';
end
ind=findstr(fname, '.');
fid=fopen([pname, fname(1:ind-1), '_dot', fname(ind:length(fname))], 'w');
for k=1:size(data, 1)-1
fprintf(fid, '%s\r\n', data(k, :));
end
fprintf(fid, '%s', data(size(data, 1), :));
fclose(fid);
disp([pname, fname(1:ind-1), '_dot', fname(ind:length(fname)), ' written']);
end
  2 Comments
Franciszek Aniol
Franciszek Aniol on 21 Apr 2020
It's so good, you are the best :)

Sign in to comment.


Jason Ross
Jason Ross on 8 May 2013
Have you tried using the Import Data Wizard? One of the options allows you to set the delimiter to be a comma. You can use generate a function or a script once the data looks good that will have the relevant import code in it.
  1 Comment
Algirdas Kluonius
Algirdas Kluonius on 9 May 2013
The import wizard gives a string and works partially in any case i need to modify all anyway

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by