显示嵌套单元格数组中的所有元素(带有字符条目)

时间:2012-04-13 22:10:33

标签: matlab cell-array

我有以下内容:

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}{:}只会考虑第一个字符

如何解决这个问题?谢谢。

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' ]);