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

 采纳的回答

You can use the sprintf or the format option. In your case, you can just type:
format short
into the command window.

3 个评论

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
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

请先登录,再进行评论。

更多回答(2 个)

(I should add this to the FAQ.)

4 个评论

thanks Image Analyst for response but it isn't really what i'm looking for
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?
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
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?

请先登录,再进行评论。

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

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by