正如評論指出,可以使用絕對數組:
% some arbitrary data:
country = repmat('ca',10,1);
country = [country; repmat('cb',10,1)];
country = [country; repmat('cc',10,1)];
T = table(repmat((2001:2005)',6,1),cellstr(country),...
cellstr(repmat(['x1'; 'x2'; 'x3'],10,1)),...
cellstr(repmat(['y1'; 'y2'; 'y3'],10,1)),...
randperm(30)','VariableNames',{'Year','Country','X','Y','Value'});
% convert all non-number data to categorical arrays:
T.Country = categorical(T.Country);
T.X = categorical(T.X);
T.Y = categorical(T.Y);
% here is an example for using categorical array:
newVar = T(T.Country=='cb' & T.Year==2004,:);
的table
類這樣的事情做了,非常方便。只需展開最後一行T.Country=='cb' & T.Year==2004
中的邏輯語句即可滿足您的需求。 告訴我,如果這有幫助;)
來源
2016-07-04 21:46:55
EBH
寫一些功能第一,後期擔心優化。 – excaza
感謝提示excaza。關鍵是可能有一個功能我不知道可以用來做到這一點。否則,我將不得不循環遍歷整個數據集,每次我想提取一個具體的值時,如果不是200000條記錄,而是500萬條記錄,那麼這不是一個真正的選擇。 – aulky11
哦,那裏!請看看分類() – Finn