# Add zero decimal digits in order to have all the elements of a matrix with same number of decimal digits

29 views (last 30 days)
Emilio Pulli on 4 Dec 2021
Commented: Walter Roberson on 6 Dec 2021
How can I add zero decimal digits to a number in order to have the same number of decimal digits in the numbers of a matrix? For instance, if I have only a "27" how can I change it to a "27.000"? I have already tried the function
compose("%.3f",A)
in order to have the same decimal formt of all the elements of matrix A, but it does not work.

Walter Roberson on 4 Dec 2021
Edited: Walter Roberson on 5 Dec 2021
I already showed you how to use compose with a format to get a fixed number of digits.
Walter Roberson on 6 Dec 2021
take the result of the standardizeMissing and array2table() with 'VariableNames' set to the header for the column. writetable() the results.
Walter Roberson on 6 Dec 2021

Rik on 4 Dec 2021
There is a distinction between the way data is stored and how it is displayed.
You can change the data type (double, single, cell, char, etc) to change the underlying data.
You can use functions like fprintf and sprintf to display your data a certain way.
Rik on 5 Dec 2021
Did you not see the if statement? The loop I showed will write only 1 value at a time, so you have full control over the format.
But the solution Walter showed you will also work.
Emilio Pulli on 6 Dec 2021
Thank you man! I use the Walter answer because was faster, but also your advices helped me understanding better the problem! Thank you again for the patience!

G A on 4 Dec 2021
A = magic(3)
A = 3×3
8 1 6 3 5 7 4 9 2
B = num2str(A,'%.3f\t')
B = 3×17 char array
'8.000→1.000→6.000' '3.000→5.000→7.000' '4.000→9.000→2.000'