将数组转换为字符串 - MATLAB

时间:2013-09-06 19:03:00

标签: arrays excel matlab

我有一个数组,我想基本上捕获为文本,所以我可以将它作为列标题写入Excel文件的一个单元格。这是一系列主题,我将在下面提供一些数据。所以范围是:

range = 2:12;

创建和数组,但我希望Excel文件头只读2:12。我已经尝试创建另一个变量来在一个字段中捕获此文本,使用num2str,如下所示:

rangeChar = num2str(range);

我得到了:

rangeChar = 2   3   4   5   6   7   8   9  10  11  12

但它们都是单独的字段,因此当导出到Excel时,它们每个都占用自己的单元格。原始范围并不总是顺序的 - 例如我可能有

range = cat(2, 2:4, 8, 9:12);

所以我不能只做一个

rangeChar = sprintf('%d:%d', range(1), range(end)); 

类型的东西。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

你可以反过来做并保持字符串中的范围,并在需要时从中提取矢量:

rangeChar = '2:12';
range = eval(rangeChar);

答案 1 :(得分:0)

难道你不能写:

range = '2:12';

答案 2 :(得分:0)

使用单元格数组来保存“范围”并使用以下代码:

range = {2:4, 8, 9:12};
range_str=repmat({''}, size(range));
for i=1:length(range)
    if length(range{i})==1
    range_str{i}=sprintf('%d', range{i});
    else
    range_str{i}=sprintf('%d:%d', range{i}(1), range{i}(end));
    end
end
range_str

输出:

range_str = 

'2:4'    '8'    '9:12'