change the number of digits after decimal point

Hi everybody
how can I change the number of digits after decimal point? I have a matrix of float numbers i want to transform each number in this matrix from this form x.xxxxxxxxxxxxxxx to this form x.xxxx
thanks

 Risposta accettata

Mahdi
Mahdi il 30 Mag 2014
Modificato: Mahdi il 30 Mag 2014
You can use the sprintf or the format option. In your case, you can just type:
format short
into the command window.

3 Commenti

jan
jan il 30 Mag 2014
Modificato: jan il 30 Mag 2014
Hi Mahdi and thanks for your answer, sprintf is to transform the data to string which isn't my interest fprintf for displaying and i used format short in the command window but nothing is changed. I need to transform all the values in the matrix with only 4 digits numbers and not 15 because i will do a treatement on it so it isn't a problem of displaying
Mahdi
Mahdi il 30 Mag 2014
Modificato: Mahdi il 30 Mag 2014
Try putting format short into your script? Do you mind attaching your code? It should work for your purposes.
I strongly do not recommend doing it this way, but as a last resort, you can change your string to a number using str2num.
Thanks mehdi even it isn't a direct way but it gives what i need thanks a lot

Accedi per commentare.

Più risposte (2)

(I should add this to the FAQ.)

4 Commenti

jan
jan il 30 Mag 2014
Modificato: jan il 30 Mag 2014
thanks Image Analyst for response but it isn't really what i'm looking for
Image Analyst
Image Analyst il 30 Mag 2014
Modificato: Image Analyst il 29 Nov 2014
Then why don't you describe exactly what you're looking for? I see two possibilities: Do you want to (a) change each number by truncating digits after a certain number of decimal places, or (b) leave each number alone but just change how many digits are displayed when you display it in the command window or a static text label in a GUI?
I told you how to do (a). To do (b) you can use sprintf(), fprintf(), or format(). Which way, a or b, do you want to do?
jan
jan il 30 Mag 2014
Modificato: jan il 30 Mag 2014
Hi I'm looking for b but sprintf is to transform the data to string which isn't my interest fprintf for displaying and i used format short in the command window but nothing is change. I need to transform all the values in the matrix with only 4 digits numbers and not 15 because i will do a treatement on it so it isn't a problem of displaying
Image Analyst
Image Analyst il 30 Mag 2014
Modificato: Image Analyst il 29 Nov 2014
You said you want (b) but then you say that you don't want to use sprintf() or format() or to use a string at all. Your last sentence indicates that you want it to stay a number not a string but that is option (a) and is the answer I gave you at the very start. Sorry but I still am not sure what you want. You're either changing the number (by chopping off digits) or you're not, which is it?

Accedi per commentare.

I've made a simulation on BPSK modulation and semilogy plotted the SNR vs. BER. The plot is geometrically the same to the actual plot but deviates from BER = 0.00001.I think this is because matlab doesn't consider values below 4 decimal place while plotting , to what extent could this be the reason if not what could the reason be.plz someone help me

Richiesto:

jan
il 30 Mag 2014

Risposto:

il 26 Giu 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by