MATLAB Answers

huda nawaf

are there another func.?

Asked by huda nawaf
on 1 Nov 2011

hi, I don't want deal with such numbers 1.0e+009 *1.8000 are there any fun. instead of sprintf convert that no. to natural form. if I have numbers , sprintf convert all into one long string.


  1 Comment

define "natural form"



No products are associated with this question.

2 Answers

Answer by Naz
on 1 Nov 2011

type in Command Window:

format short

and the output will be of about 5 decimal digits. However, if you have such a large number as in your question, the MatLab will by default output it in exponential form (I think). Also, you dont have to use sprintf. Try this:

disp(['This is my variable ',num2str(x)]);


Answer by Walter Roberson
on 1 Nov 2011


will give you a cell array of strings, one value per cell entry. This should satisfy the requirement of not getting out one long string.


if i have this array
1.0e+009 *
1.8000 1.8049 1.8000 1.8000 1.8003
1.8000 1.8085 1.8004 1.8084 1.8074
1.8078 1.8045 1.8074 1.8076 1.8002
1.8078 1.8084 1.8084 1.8074 1.8084
1.8084 1.8084 1.8085 1.8084 1.8084

the cellstr make it vector.
please , I NEED AS ABOVE.

cellstr() does not convert numbers in to string: num2str() does that. cellstr() prevents the output from being "one long string" as you indicated you do not want.


will produce a cell array of strings, one cell entry per line of your array.

Myself, I find that a great deal of the time using the appropriate sprintf() parameters gives the output I need, as usually I am displaying to the screen where it is acceptable and desirable to have newline characters between the rows -- but I do agree that technically the result of sprintf() is always "one long string" even when it doesn't *look* that way. My guess is that you are not using \n at appropriate places in your sprintf() format, such as

sprintf( [repmat('%.4f ', 1, size(YourArray,2)-1) '%.4f\n'], YourArray.' )

But certainly there are times when you really do want different strings for every line rather than wanting newlines between rows.

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!