2014-07-16 53 views
1

预先感谢您的帮助。Matlab:将单元格转换为可读格式

我有值的数组,看起来像这样

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

我想将其转换为类的这种

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

cell2mat我想要做什么,但我最终得到这个

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

我一直都超过了Matlab的文件,并没有发现一种方法做 这个。真的,我想要的只是将[1x5 double]转换为一个字符串(由于我不想丢弃无关紧要的零,我不能将其转换为数字)。除了用for循环手动执行此操作还有一个简单的方法吗?

回答

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' 
+0

正是我需要的。非常感谢你。 – HXSP1947

+0

@ user2736423不客气,很高兴帮助! – Divakar