连接并从单元阵列中提取数据

时间:2015-03-19 15:35:50

标签: matlab concatenation cell

我有一个名为d_O3的单元格数组,大小为3x15。 这是第一行的样子:

    10x29 cell
    31x29 cell
    40x29 cell
    ...

我想将每个单元格中的第一列转换为列数组,并将它们全部垂直连接在一起。

这是我到目前为止所做的事情:

years = 1999:2013; % The 15 columns
m = 1; % Row 1. I'd like to be able to run a loop for the other rows to do the same thing, but I haven't figured out how.
for y = 1:numel(years)
    data{y,1} = d_O3{m.y}(:,1);
end

这会在里面创建一个15x1的单元格:     31x1细胞     40x1细胞     42x1细胞     ...

在每个单元格内(即31x1内部),有一个字符串列数组。但是我想把它连在一起所以它看起来像:

06-029-0001-88101
06-073-0010-88101
...

换句话说,我想垂直连接上面的所有单元格。

我可以通过以下方式来实现:

vertcat(data{1,1},data{2,1},...)

但这意味着输入data{i,1} 15次。什么是更简单的方法?

1 个答案:

答案 0 :(得分:1)

vertcat(data{1:15,1})

vertcat(data{:,1})

它创建一个逗号分隔的列表,传递给vertcat。