Hello, I would like to save a Matlab table (first column strings, the rest are floating numbers) to a csv in the shortG format. I have set the format in my script and when I look at the table in the program, it looks just as it should. However, when I save the table to a csv file, the numbers increase their decimal places counts suddenly, forbidding numbers like -6.0247e-06 etc. How to overcome this, please?
Prashant Kumar answered .
2025-11-20
Here is one approach that gives exactly the shortG format in your CSV file:
M = 3x5
-6.0247123456789e-06 0.197674571707108 0.0250170842766982 0.310389529607936 0.506567531163724
0.908509002122202 0.204247079115749 0.25809728620882 0.771847731508226 0.391636786365166
0.245969238812545 0.0773711174826793 0.563422695499417 0.0640169158863244
F = @(v)formattedDisplayText(v,'NumericFormat','shortG');
S = regexprep(arrayfun(F,M),{'\s+','\.{3}'},'');
writelines(join(S,','),'mytest.csv')
Checking the file content:
type mytest.csv
-6.0247e-06,0.19767,0.025017,0.31039,0.50657 0.90851,0.20425,0.2581,0.77185,0.39164 0.24597,0.077371,0.56342,0.064017,0.34593