How to create a cell of strings from a vector?

2 Ansichten (letzte 30 Tage)
K E
K E am 10 Sep. 2012
I have the vector
x = [ 10.027 20.35 50.1 100.002 ]
which I would like to convert to the cell
x = { '10', '20', '50', '100' }.
How can I do this? I know I can use sprintf('%.0f\n', x) to get the formatting I want, but not how to turn the outputs into a cell of strings.

Akzeptierte Antwort

Oleg Komarov
Oleg Komarov am 10 Sep. 2012
Bearbeitet: Oleg Komarov am 10 Sep. 2012
Encapsulate sprintf() into arrayfun():
arrayfun(@(in) sprintf('%.0f', in), x,'un',0)
  4 Kommentare
K E
K E am 10 Sep. 2012
Very useful, thanks. I am more likely to recall cellstr next time.
Tom
Tom am 10 Sep. 2012
If you add left justify to the format it removes the leading spaces:
cellstr(num2str(x','%-0.0f'))

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Jan
Jan am 10 Sep. 2012
Bearbeitet: Jan am 10 Sep. 2012
Perhaps this is faster:
Str = sprintf('%.0f*', x);
C = regexp(Str, '*', 'split');

Tom
Tom am 10 Sep. 2012
Based on Sean De Wolski's answer:
cellstr(num2str(x','%-0.0f'))

Kategorien

Mehr zu Get Started with Image Processing Toolbox finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by