Info
Questa domanda è chiusa. Riaprila per modificarla o per rispondere.
are there another func.?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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.
thanks
1 Commento
Risposte (2)
Naz
il 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:
x=5;
disp(['This is my variable ',num2str(x)]);
0 Commenti
Walter Roberson
il 1 Nov 2011
cellstr(num2str(YourArray(:)))
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.
2 Commenti
Walter Roberson
il 1 Nov 2011
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.
cellstr(num2str(YourArray))
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.
Questa domanda è chiusa.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!