将文本矩阵保存在目录中:MATLAB

时间:2015-03-25 00:31:13

标签: matlab matrix

我有一个矩阵,比如A =

11084   2009    572 277 1095 685    636 365 545 697 518 490 747 1648;   
11084   2010    1000 533 340 212    635 254 399 759 110 248 490 214;    
11084   2011    587 410 481 146 99  499 547 118 706 20  174 526;    
12813   2009    216 486 1443    207 730 369 518 625 816 767 382 1352;   
12813   2010    673 544 517 204 704 504 219 1033    633 168 473 272;    
12813   2011    348 238 458 107 90  394 1014    196 1109    34  365 250;    

第1列表示站ID,我想将输出保存在站ID名称的单独目录中;例如,在这种情况下,将创建一个名为11084.txt的文本文件,其中包含foll。数据:

2009    572;2009    277;2009    1095;2009   685;2009    636;2009    365;2009    545;2009    697;2009    518;2009    490;2009    747;2009    1648;2010   1000;2010   533;2010    340;2010    212;2010    635;2010    254;2010    399;2010    759;2010    110;2010    248;2010    490;2010    214;2011    587;2011    410;2011    481;2011    146;2011    99;2011 499;2011    547;2011    118;2011    706;2011    20;2011 174;2011    526;

类似地,接下来将包含

的12813.txt
2009    216;2009    486;2009    1443;2009   207;2009    730;2009    369;2009    18;2009 625;2009    816;2009    767;2009    382;2009    1352;2010   673;2010    44;2010 517;2010    204;2010    704;2010    504;2010    219;2010    1033;2010   633;2010    168;2010    473;2010    272;2011    348;2011    238;2011    458;2011    107;2011    90;2011 394;2011    1014;2011   196;2011    1109;2011   34;2011 365;
2011    250;

请告诉我怎么做。谢谢,

1 个答案:

答案 0 :(得分:1)

直接的解决方案就是:

d = unique(A(:,1));
for i = 1:length(d)
  fid = fopen([num2str(d(i)) '.txt'],'w');
  aux = find(A(:,1)==d(i))';
  for j = aux
    for k = 3:size(A,2)
      fprintf(fid,'%d   %d;', A(j,2), A(j,k));
    end
  end
  fclose(fid);
end