2014-11-25 155 views
0

我有一个6×3细胞(称为STRAT),其中的前两列包含文本的单元阵列,最后一列具有1或2。子索引成字符串

我想利用此子集单元阵列。基本上只选择最后一列有1的行。

我尝试以下,

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

该错误消息是,

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

我怎样才能索引到一个单元阵列?

+2

尝试'FF = STRAT([STRAT {:,3}] == 1,1:2);'或'FF = STRAT([STRAT {:3 }] == 1,:);' – 2014-11-25 12:03:46

回答

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