How to write to csv file in shortG format?

Illustration
slavnikp - 2024-05-08T16:17:27+00:00
Question: How to write to csv file in shortG format?

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?  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

Here is one approach that gives exactly the shortG format in your CSV file:

format long G
M = rand(3,5);
M(1) = -6.0247123456789e-06
 
 
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

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!