Matlab:将单元格转换为可读格式

时间:2014-07-16 18:21:25

标签: matlab string-concatenation cell-array

提前感谢您的帮助。

我有一组看起来像这样的值

[[1x5 double]; [1x2 double]; ....]

我想将此转换为此

['12345'; '12'; ....]

cell2mat有点做我想要的,但我最终得到了这个

[['1' '2' '3' '4' '5']; ['1' '2'];...]

我一直在matlab文档中,并没有找到一种方法来做到这一点。我真正想要的是将[1x5 double]转换为字符串(我无法转换为数字,因为我不想丢弃无关紧要的零)。除了手动执行for循环之外,还有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

如果input_array是您的输入数组,请尝试使用此 cellfun + num2str 方法 -

cellfun(@(x) num2str(x,'%1d'), input_array,'uni',0)

示例 -

%// Input array
input_array = {randi(9,1,5)-1;randi(9,1,2)-1}

%// Display the cell array values for verification of results later on
celldisp(input_array)

%// Output
out = cellfun(@(x) num2str(x,'%1d'), input_array,'uni',0)

输出(运行中) -

input_array = 
    [1x5 double]
    [1x2 double]

input_array{1} =
     3     6     0     5     3
input_array{2} =
     6     2

out = 
    '36053'
    '62'