regexp格式并使用2个单元格数组

regexp格式并使用2个单元格数组,regex,matlab,multiple-columns,cell-array,Regex,Matlab,Multiple Columns,Cell Array,我有一个由20个细胞组成的矩阵,名为T。 此矩阵中的每个单元格都包含下一个内容: 1,26:00:01.490, 2.40,101.2, 7.8,-24.0,20.40,-0.76,-0.26 我想将其分隔并拆分为列,因此我使用: Data=regexp(T,',','split'); 结果是,我得到的数据=20x1个单元格,每个单元格内都有另一个带有我想要的拆分向量的单元格 到目前为止,这一切都很好,但我想做的下一件事是获取所有的时间变量(26:00:01.490),但它们位于两个单元格

我有一个由20个细胞组成的矩阵,名为T。 此矩阵中的每个单元格都包含下一个内容:

1,26:00:01.490, 2.40,101.2,  7.8,-24.0,20.40,-0.76,-0.26
我想将其分隔并拆分为列,因此我使用:

Data=regexp(T,',','split');
结果是,我得到的数据=20x1个单元格,每个单元格内都有另一个带有我想要的拆分向量的单元格

到目前为止,这一切都很好,但我想做的下一件事是获取所有的时间变量(
26:00:01.490
),但它们位于两个单元格内。 我想做的事情是
数据{:,1}{1,2}
但是它说错误的单元格引用操作是错误的


有人知道如何在另一个单元格内的单元格数组中获取整列?

如果所有二级单元格的大小相同(即,所有字符串的逗号数相同),则可以垂直连接所有二级单元格以形成二维单元格数组,这样就很容易访问列

例如:

>> T(1,:) = {'1,26:00:01.490, 2.40,101.2, 7.8,-24.0,20.40,-0.76,-0.26'}; %// example...
>> T(2,:) = {'2,26:00:01.490, 2.40,101.2, 7.8,-24.0,20.40,-0.76,-0.26'}; %// ...with 2 rows
>> Data = regexp(T,',','split'); %// as per your code
>> Data = vertcat(Data{:}); %// concatenate vertically to obtain 2D cell array
>> Data(:,1:2) %// now you can access columns
ans = 
    '1'    '26:00:01.490'
    '2'    '26:00:01.490'

您可以通过组合使用
vertcat
{:}
来连接
1x9
单元格之间的数据

%//First form T
str='1,26:00:01.490, 2.40,101.2,  7.8,-24.0,20.40,-0.76,-0.26';
str=repmat({str},20,1);
Data=regexp(str,',','split');
Data1=vertcat(Data{:});

%//Get your time data in form of cells
timeData_cells=Data1(:,2);

%//Get your time data in form of a matrix
timeData_matrix=vertcat(Data1{:,2}) %//This will work only if all time strings 
                                    %//have the same length. 

%Answer
timeData_cells=
    '26:00:01.490'
    '26:00:01.490'
          .
          .
          .
    '26:00:01.490'
    '26:00:01.490'

timeData_matrix=
    26:00:01.490
    26:00:01.490
         .
         .
         .
    26:00:01.490
    26:00:01.490

嗨,谢谢你们两位的评论,我只是不明白为什么我需要做repmat,它不是把我的整个矩阵相乘吗?@ben
repmat
只是我用来定义两行的示例
T
的一种简单方法。我编辑了答案,让它更清楚谢谢,我现在明白了。