Precision in writetable()
    88 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Is there a way to use writetable() to export using only 2 decimals? To be able to directly export it to an excel file.
0 Kommentare
Akzeptierte Antwort
  dpb
      
      
 am 26 Okt. 2020
        Sadly, no.  A OutputFormat formatting string or NumericPrecision option is not available.
I presume since a table can contain any data type including cells too many possibilities are opened up that TMW hasn't wanted to venture down that road.
Does seem like worthy of some design consideration for the normal cases, though, granted...
For text files, the numeric format is long g.
7 Kommentare
  Tao Wang
 am 10 Mär. 2022
				For me , Willingo's answer is still not working.
I tried and it did show numbers with 2 decimals in commond . but if I  writetable() to excel, the numbers format is still long.
Also , I tried   num2str first , 
 num2str(1.345,'%.2')
and u will not only get the data  with 2 decimals ,but also a green flag  on the top left of the box.
  dpb
      
      
 am 10 Mär. 2022
				Because having rounded the numbers, they still are doubles and will have machine-precision rounding that Excel will try to preserve.
All you can do is format them inside Excel; same way as MATLAB, Excel keeps everything as a double internally; it only changes how they're displayed.
The second route writes the numeric value as text in the cell which is the source of the warning highlight.
There are several user-contributed utilities  to allow one to set Excel table properties on the FEX.  I believe it was @Image Analyst who wrote and posted a pretty nice starter set of Excel_utils that  you may search for here on Answers -- I recall making a couple extensions and adding/posting another feature or two.  That's been with the year...just at the moment I've got things in a state it isn't convenient to try to go find, but will try to get back...
Weitere Antworten (2)
  Johannes Kalliauer
      
 am 20 Jul. 2022
        
      Bearbeitet: Johannes Kalliauer
      
 am 20 Jul. 2022
  
      dlmwrite('yourfile.txt',t{:,:},'\t','precision','%10.2f')
1 Kommentar
  dpb
      
      
 am 20 Jul. 2022
				Doesn't get OP directly to Excel as per request, though...but correct that it does  allow the formatting string.
  Christine
 am 12 Feb. 2025
        Another workaround might be executing this line for the variables inside the table.
variable = round(variable*100)/100;
Siehe auch
Kategorien
				Mehr zu Spreadsheets finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







