How to convert a numerical matrix into a matrix of formatted strings?
Show older comments
Hi,
I'd like to convert a numerical matrix into a matrix of formatted strings.
Example of input matrix:[1 2 3.051 4]
What I expect as output: {'1.00' '2.00' '3.05' 4.00'} specified by the string format '%.2f' for instance.
Thanks for your tips.
[EDITED, JSimon, 06-Oct-2011 14:16 UTC]: Cell string wanted => square brackets to curly braces.
Answers (4)
Walter Roberson
on 6 Oct 2011
cellstr(num2str(matrix(:),'%.2f')).'
Grzegorz Knor
on 6 Oct 2011
use sprintf:
sprintf('%.2f ',[1 2 3.051 4])
Benjamin
on 6 Oct 2011
2 Comments
Grzegorz Knor
on 6 Oct 2011
Shorter solution:
V=[1;2;3.051;4];
M=[V 2*V];
C = arrayfun(@(x)sprintf('%.2f',x),M,'Uniform',false)
Jan
on 6 Oct 2011
Or as loop:
C = cell(size(M)); for i=1:numel(M); C{i}=sprintf('%.2f', M(i)); end
Using the linear index for M and C reduces the complexity.
Benjamin
on 12 Oct 2011
0 votes
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!