子索引到字符串的单元格数组中

时间:2014-11-25 12:00:15

标签: matlab

我有一个6 x 3的单元格(称为strat),其中前两列包含文本,最后一列包含1或2。

我想取这个单元格数组的子集。基本上只选择最后一列中有1的行。

我尝试了以下内容,

ff = strat(strat(:, 3), 1:2) == 1;

错误消息是,

Function 'subsindex' is not defined for values of class 'cell'.

如何索引到单元格数组?

1 个答案:

答案 0 :(得分:1)

通过大括号{}而不是括号()访问单元格数组。然后,作为第二个细微之处,当从单元格数组中提取值时,您需要收集它们...对于数字,您使用[]将它们收集到常规数组中,对于字符串,您可以使用它们将它们收集到新的单元格数组中{}。令人困惑,是吗?

ff = { strat{ [strat{:,3}]==1 , 1:2 } };

以这种方式收集到单元格数组通常会在完成后给出错误的形状。所以,你可以试试这样的东西

ind = find([strat{:,3}]==1);  %find the relevant indices
ff = {{strat{ind,1}; strat{ind,2}}';  %this will probably give you the right shape