use comma as decimal seperator
344 views (last 30 days)
Show older comments
Commented: Govind Narayan Sahu on 19 Jun 2022
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)
Jan on 27 Sep 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.
Enri on 22 Mar 2019
" importing data from Excel to MATLAB can be substantially irritating."
- Exporting data from Matlab to Excel is irritating as well.
More Answers (6)
Daniel Shub on 27 Sep 2011
TAB on 27 Sep 2011
Adam on 1 Dec 2012
Look there (just for function plots): http://frommyplayground.com/2012/12/decimal-comma-in-matlab-plots/
Daniel Gregorius on 3 May 2018
Edited: Daniel Gregorius on 3 May 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
x=x(1)-x(2)/10^strlength(splitstrx(1,2)); %it's negative, need to substract 2nd string
x=x(1)+x(2)/10^strlength(splitstrx(1,2)); %it's positive
Johannes Kalliauer on 30 Nov 2020
For Matrixes to CSV I recommend on linux/Mac-machines (On Windows you have to install sed)
system(['exec sed -i "s/\./,/g" ',filename]);
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!