how to merge two mat files which have different structure cells into a mat file with a matrix
    7 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    quang minh le
 el 22 de Dic. de 2015
  
    
    
    
    
    Respondida: SATISH KUMAR
 el 16 de Abr. de 2017
            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 comentarios
  jgg
      
 el 22 de Dic. de 2015
				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?
Respuesta aceptada
  Renato Agurto
      
 el 22 de Dic. de 2015
        
      Editada: Renato Agurto
      
 el 22 de Dic. de 2015
  
      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 comentarios
  Renato Agurto
      
 el 22 de Dic. de 2015
				
      Editada: Renato Agurto
      
 el 22 de Dic. de 2015
  
			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
Más respuestas (1)
  SATISH KUMAR
 el 16 de Abr. de 2017
        Try this its working. load(a.mat); load(b.mat); c = [a;b];
0 comentarios
Ver también
Categorías
				Más información sobre Data Type Conversion en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



