how to merge two mat files which have different structure cells into a mat file with a matrix
    7 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I need to merge 1000 files with different structure cells into one matrix. For detailed, I make an examples of two files A and B files. File A has one row with n cells A = {cell(1a,1a), cell(1a,2a), .... cell(1a,na)} and B has one row and m cells B = {cell(1b,1b), cell(1b,2b), .... cell(1b,mb)}. Each cell in A and B has same 3 columns but different rows. My question is how to merge these two files with a transformation of all cell content in to ONE matrix mat file like: [cell(1a,1a); cell(1a,2a); .... cell(1a,na); cell(1b,1b); cell(1b,2b), .... cell(1b,mb)] Thanks.
2 件のコメント
  jgg
      
 2015 年 12 月 22 日
				I think you need to give us a clearer example of what you're trying to do. Let's say you have K files. Then, if I understand your problem, couldn't you just do this:
 C = cell(K,1);
 for i = 1:K
   load(file_i);
  C{i} = file_i;
 end
Is this not what you want to do?
採用された回答
  Renato Agurto
      
 2015 年 12 月 22 日
        
      編集済み: Renato Agurto
      
 2015 年 12 月 22 日
  
      I think this should do it:
 for i = 1:N
   A = load(file_i);
   A = struct2cell(A);
   f{i} = cat(1,A{:})
 end
 combined_f = cat(1,f{:});
3 件のコメント
  Renato Agurto
      
 2015 年 12 月 22 日
				
      編集済み: Renato Agurto
      
 2015 年 12 月 22 日
  
			My answer was arlready for multiple files. file_i should actually be file_array{i}. where
 file_array = {'file1.mat',..
                'file2.mat',...
                'file3.mat'};
then you can use the above code:
 for i = 1:N
   A = load(file_array{i}); %load file i
   A = struct2cell(A); %get cell array with ALL matrices in file
   f{i} = cat(1,A{:}) %merge matrices of file
 end
 combined_f = cat(1,f{:}); %merge matrices of all files
where N is the number of files. In this case 3
その他の回答 (1 件)
参考
カテゴリ
				Help Center および File Exchange で Data Type Conversion についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



