How to concatenate cells?
    12 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Hello,
I have 2 cell matrices like <1*1150cell> one has 1000*2 matrix in each cell: xxp the other has 1000*4 matrix in each cell: xxq
I would like to have a one cell matrices of <1*1150cell> with each cell having 1000*6 matrix from the concatenating both matrices.
I have tried different approaches, and tried resorting with loops but was not able to do it.
for i=1:1150
xx{i}={[xxp{i} xxq{i}]};
end
This does not work there are other longer ways to go apparently. But provides an idea of the problem.
0 Kommentare
Antworten (3)
  Honglei Chen
    
      
 am 12 Mär. 2013
        I think you just need to do
for i=1:1150 
  xx{i}=[xxp{i}; xxq{i}]; 
end
Alternatively, you can do
xx = cellfun(@(x,y)[x;y],xxp,xxq,'UniformOutput',false);
  Konrad Malkowski
    
      
 am 12 Mär. 2013
        Does this do what you are looking for?
A = repmat([1,2,3,4], 1000, 1);
B = repmat([5,6], 1000, 1);
C = {A};
D = {B};
CC = repmat(C, 1, 1115);
DD = repmat(D, 1, 1115);
XX = cellfun(@horzcat, CC, DD, 'UniformOutput',false)
  Walter Roberson
      
      
 am 12 Mär. 2013
        One way would be
mat2cell( [cell2mat(xxp.'), cell2mat(xxq.')], ones(1,1150), 6) .'
But this uses for loops internally.
Siehe auch
Kategorien
				Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



