正如评论指出,可以使用绝对数组:
% 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