use comma as decimal seperator

278 visualizaciones (últimos 30 días)
Patrick
Patrick el 27 de Sept. de 2011
Comentada: Walter Roberson el 18 de Jul. de 2023
Hi,
i have a simple question and this is my last try, as i've been searching the web all morning:
Is there a way to use comma as decimal seperator instead of a period/dot in matlab?
Even maybe only in figures/axis format?
Thanks, any help is gratefully appreciated!
ps: i set the reagional settings in Windows/MacOS (using both) to German (--> Comma)

Respuesta aceptada

Jan
Jan el 27 de Sept. de 2011
The answer is easy: no.
Using the comma is a German feature. In the world of scientific computing the dot is always used as decimal separator. Only Excel is affected by this setting, and in consequence importing data from Excel to MATLAB can be substantially irritating.
  9 comentarios
Stephen23
Stephen23 el 18 de Jul. de 2023
" importing data from Excel to MATLAB can be substantially irritating... Exporting data from Matlab to Excel is irritating as well."
Out of personal curiousity, would you care to explain specifically why?
Walter Roberson
Walter Roberson el 18 de Jul. de 2023
IMHO, MATLAB could make it easier to control cell format and insertion of macros in .xls* files.
And perhaps even make it easier to cram multiple distinct tables inside the same worksheet, since some people prefer to build spreadsheets more for presentation purposes than for machine processing.
My own work has never needed to insert an excel macro, and has seldom needed to change the format for a column or area. The times I have wanted to change the format for a column, it has (as best I can recall) had to do with wanting to change a time representation format.

Iniciar sesión para comentar.

Más respuestas (6)

Daniel Shub
Daniel Shub el 27 de Sept. de 2011
You might want to check out this link:

TAB
TAB el 27 de Sept. de 2011

Patrick
Patrick el 27 de Sept. de 2011
Thanks anyway, i fear Jan Simon is right ;-( poor old Europe
  1 comentario
Boris Povazay
Boris Povazay el 17 de Jul. de 2023
Well, the opposite is true ... poor old imperial system and stubborn USA. 🤔

Iniciar sesión para comentar.


Adam
Adam el 1 de Dic. de 2012

Daniel Gregorius
Daniel Gregorius el 3 de Mayo de 2018
Editada: Daniel Gregorius el 3 de Mayo de 2018
Hey. When dealing with this problem, this is what I came up with. It's an extract of a GUI. People kept entering values with comma (,) instead of a point (.) and then it didn't work so I thought of the following code, that seems to work. I am still not sure if I have thought of everything and this is probably alot more complicated than it should be. Hopefully this still helps. It basically converts input with comma as decimal seperator into a value seperated by decimal point.
x=str2num(get(handles.point,'String'));%get point - everything alright if the delimiter is a .
if size(x,2)>1 %it's not a . but a ,
strx=get(handles.point,'String'); %need to check for sign
splitstrx=strsplit(a1,','); %try to extract length of 2nd string, divide x(2) by 10^strlength
if strx(1)=='-'
x=x(1)-x(2)/10^strlength(splitstrx(1,2)); %it's negative, need to substract 2nd string
else
x=x(1)+x(2)/10^strlength(splitstrx(1,2)); %it's positive
end
end
  2 comentarios
Stephen23
Stephen23 el 23 de Mzo. de 2019
x = str2double(strrep(get(handles.point,'String'),',','.'))
Or in a more general case:
x = str2double(strrep(str,',','.'))
Govind Narayan Sahu
Govind Narayan Sahu el 19 de Jun. de 2022
This works perfectly fine for me. Short and simple.
Thanks a lot.

Iniciar sesión para comentar.


Johannes Kalliauer
Johannes Kalliauer el 30 de Nov. de 2020
For Matrixes to CSV I recommend on linux/Mac-machines (On Windows you have to install sed)
writematrix(MyMatrix,filename,'Delimiter',';')
system(['exec sed -i "s/\./,/g" ',filename]);

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by