将字符串数组转换为单元格

时间:2010-12-30 16:10:27

标签: matlab

我需要将单元格输出到excel文件。在此之前,我需要将整数的日期列转换为datetrings。我知道怎么做,但是我无法将这个新的字符串数组放回到单元格中 -

mycell = { 'AIR' [780] [1] [734472] [0.01] ; ...
           'ABC' [780] [1] [734472] [0.02]}

我这样做了 - >

dates = datestr(cell2mat(mycell(:,4))) ;

我需要的答案是:

{'AIR' [780] [1] '14-Dec-2010' [0.01] ;
 'ABC' [780] [1] '23-Dec-2010' [0.03] ; }

这样我现在可以使用xlswrite.m

将其发送到excel文件

2 个答案:

答案 0 :(得分:3)

mycell = { 'AIR' 780 1 734472 0.01] ; ...
           'ABC' 780 1 734472 0.02]}

mycell(:,4) = cellstr(datestr(cell2mat(mycell(:,4))))

mycell = 

    'AIR'    [780]    [1]    '30-Nov-2010'    [0.01]
    'ABC'    [780]    [1]    '30-Nov-2010'    [0.02]

答案 1 :(得分:1)

避免转换的另一种方法是使用函数CELLFUN

mycell(:,4) = cellfun(@datestr,mycell(:,4),'UniformOutput',false);
%# Or an alternative format...
mycell(:,4) = cellfun(@(d) {datestr(d)},mycell(:,4));

以上两个都为您的样本单元格数组提供了以下结果:

mycell = 

    'AIR'    [780]    [1]    '30-Nov-2010'    [0.0100]
    'ABC'    [780]    [1]    '30-Nov-2010'    [0.0200]