我有以下内容:
a =
{1x1 cell} {1x1 cell} {1x1 cell} {1x1 cell}
其中:
a{:}
ans =
'a'
ans =
'a'
ans =
'c'
ans =
'a'
我想要人物:a a c a
因为我需要使用fprintf
fprintf
不接受a{:}
如果我a{1}{:}
只会考虑第一个字符
如何解决这个问题?谢谢。
答案 0 :(得分:2)
如果你只需要角色矢量'aaca',你可以使用:
a = {{'a'}, {'a'}, {'c'}, {'a'}};
a_CharVector = cellfun(@(x) char(x), a);
如果你想要字符向量'a a c a',你可以使用regexprep
来添加空格:
a_CharVectorWithSpaces = regexprep((cellfun(@(x) char(x), a)), '(.)', '$1 ');
要打印带空格和换行符的c a,您可以使用:
fprintf([ regexprep((cellfun(@(x) char(x), a)), '(.)', '$1 '), '\n' ]);
编辑:删除了不必要的匿名函数。在这种情况下,@(x)
是不必要的。
要获得角色矢量'aaca',这有效:
a_CharVector = cellfun(@char, a);
要获得角色矢量'a a a a a',你可以使用它:
a_CharVectorWithSpaces = regexprep((cellfun(@char, a)), '(.)', '$1 ');
使用换行符打印a a c:
fprintf([ regexprep((cellfun(@char, a)), '(.)', '$1 '), '\n' ]);