2014-11-25 108 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