How to create a cell of strings from a vector?

2 次查看(过去 30 天)
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.

采纳的回答

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

请先登录,再进行评论。

更多回答(2 个)

Jan
Jan 2012-9-10
编辑:Jan 2012-9-10
Perhaps this is faster:
Str = sprintf('%.0f*', x);
C = regexp(Str, '*', 'split');

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

类别

Help CenterFile Exchange 中查找有关 Get Started with Image Processing Toolbox 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by