Borrar filtros
Borrar filtros

How to replace commas with dot

9 visualizaciones (últimos 30 días)
Algirdas Kluonius
Algirdas Kluonius el 8 de Mayo de 2013
Comentada: Franciszek Aniol el 21 de Abr. de 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
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 comentarios
Mingyao el 8 de Mayo de 2013
Suppose that you have a .txt file that contains the following data:
The following code converts it into a double array:
data=textscan(fid,'%s %s %s %s','Delimiter',';');
for i=1:4
for j=1:2
Good luck!
Algirdas Kluonius
Algirdas Kluonius el 9 de Mayo de 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.

Iniciar sesión para comentar.

Respuestas (2)

Andreas Goser
Andreas Goser el 9 de Mayo de 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)='.';
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, :));
fprintf(fid, '%s', data(size(data, 1), :));
disp([pname, fname(1:ind-1), '_dot', fname(ind:length(fname)), ' written']);
  2 comentarios
Thuy Hoang
Thuy Hoang el 19 de Mzo. de 2018
OK! dear Supper Man! I thank you so much. :) It's so good! :) Thank you so much again.
Franciszek Aniol
Franciszek Aniol el 21 de Abr. de 2020
It's so good, you are the best :)

Iniciar sesión para comentar.

Jason Ross
Jason Ross el 8 de Mayo de 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 comentario
Algirdas Kluonius
Algirdas Kluonius el 9 de Mayo de 2013
The import wizard gives a string and works partially in any case i need to modify all anyway

Iniciar sesión para comentar.


Más información sobre Characters and Strings en Help Center y File Exchange.


Community Treasure Hunt

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

Start Hunting!

Translated by