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

 Akzeptierte Antwort

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

3 Kommentare

jan
jan am 30 Mai 2014
Bearbeitet: jan am 30 Mai 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 am 30 Mai 2014
Bearbeitet: Mahdi am 30 Mai 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.
jan
jan am 30 Mai 2014
Thanks mehdi even it isn't a direct way but it gives what i need thanks a lot

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Image Analyst
Image Analyst am 30 Mai 2014

0 Stimmen

(I should add this to the FAQ.)

4 Kommentare

jan
jan am 30 Mai 2014
Bearbeitet: jan am 30 Mai 2014
thanks Image Analyst for response but it isn't really what i'm looking for
Image Analyst
Image Analyst am 30 Mai 2014
Bearbeitet: Image Analyst am 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 am 30 Mai 2014
Bearbeitet: jan am 30 Mai 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 am 30 Mai 2014
Bearbeitet: Image Analyst am 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?

Melden Sie sich an, um zu kommentieren.

rahul bathini
rahul bathini am 26 Jun. 2015

0 Stimmen

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

Gefragt:

jan
am 30 Mai 2014

Beantwortet:

am 26 Jun. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by