如何以编程方式构造一个大型单元阵列

时间:2012-08-08 21:27:27

标签: matlab dataset

我如何自动构建如下所示的数据集,假设矩阵summary_whts的列数大约为。 400 ???

lrwghts = dataset(...
         {summary_whts(:,01),'w00'},...
         {summary_whts(:,02),'w01'},...
         {summary_whts(:,03),'w02'},...
         {summary_whts(:,04),'w03'},...
         {summary_whts(:,05),'w04'},...
         {summary_whts(:,06),'w05'},...
         {summary_whts(:,07),'w06'},...
         {summary_whts(:,08),'w07'},...
         {summary_whts(:,09),'w08'},...
         {summary_whts(:,10),'w09'},...
         {summary_whts(:,11),'w10'},...
         {summary_whts(:,12),'w11'},...
         'ObsNames',summary_mthd);

2 个答案:

答案 0 :(得分:3)

为什么不使用简单的循环来填充dataset

nCols = size(summary_whts,1);
dataset = cell(nCols, 2);
for i = 1:nCols
  dataset{i,1} = summary_whts(:,i);
  dataset{i,2} = sprintf('w%04d', i);
end
dataset{end+1,1} = 'ObsNames';
dataset(end, 2} = summary_mthd;

答案 1 :(得分:0)

最后,我发现了!这就是我想要的:

cat = [];
for i = 0:(size(X,2)),
    cat = [cat;sprintf('w%03d',i)];
end
cat = cellstr(cat);
lrwghts = dataset({summary_whts,cat{:}},'ObsNames',cellstr(summary_mthd));