我有一个6 x 3的单元格(称为strat),其中前两列包含文本,最后一列包含1或2。
我想取这个单元格数组的子集。基本上只选择最后一列中有1的行。
我尝试了以下内容,
ff = strat(strat(:, 3), 1:2) == 1;
错误消息是,
Function 'subsindex' is not defined for values of class 'cell'.
如何索引到单元格数组?
答案 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