how to convert Cell to string

2 次查看(过去 30 天)
Suppose I have a cell
v = 'v' [576.5818] [3.0286] [576.9270]
'v' [576.5953] [3.1180] [576.8716]
'f' [ 56] [ 58] [ 52]
'f' [ 56] [ 58] [ 52]
and I want to convert this to a cell array using a format string for each
element:' %.5f' How can I do this? I tried the following approach, but I get an error:
f1 = @(x) sprintf(' %.5f',x);
cellfun(f1, num2cell(v),'UniformOutput', false)
i am getting an error as ???
Error using ==> sprintf
Function is not defined for 'cell' inputs.
Error in ==> @(x)sprintf(' %.5f',x)
Can any one help me thanks in advance

采纳的回答

Kye Taylor
Kye Taylor 2012-11-6
Modify the command
cellfun(f1, num2cell(v),'UniformOutput', false)
to
cellfun(f1, v,'UniformOutput', false)
  3 个评论
Kye Taylor
Kye Taylor 2012-11-6
Create a function file such as
function write2file(x)
if ischar(x)
sprintf(' %s',x)
else
sprintf(' %.5f',x)
end
Then try
cellfun(@write2file,v,'UniformOutput',false)
Matt Fig
Matt Fig 2012-11-6
编辑:Matt Fig 2012-11-6
That is what num2str does automatically...
cellfun(@(x) num2str(x,'%.5f'),v,'un',0)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by