How to create a cell of strings from a vector?

2 ビュー (過去 30 日間)
K E
K E 2012 年 9 月 10 日
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 Center および File ExchangeGet 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