How to define the variable which contain multiple double data?
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Jihye Jung
 el 4 de Ag. de 2019
  
    
    
    
    
    Comentada: Jihye Jung
 el 4 de Ag. de 2019
            Hello, I am not familar with MATLAB and I need advice from many experienced people.
I have multiple double arrays in my A structure (11x1 structure).
A structure have [?x2 double] format and I want to sort with 2nd column of all [A(1),A(2), ... A(11)] and merge all that sorted data in one variable.

I did it 1 by 1 and I got a data which I want, but it is such a long code and stupid way.
Does anyone have an idea how to summarize my code?
And my final goal is to define these 2 coulmns by x and y coordinates.
% Select n-th row of A and make double array and sort with 2nd column 
A1 = vertcat(A(1).Groups);     % size(A1) = 5  2
A1_1 = sortrows(A1,[2]);
A2 = vertcat(A(2).Groups);     % size(A2) = 8  2
A2_1 = sortrows(A2,[2]);
A3 = vertcat(A(3).Groups);     % size(A3) = 9  2
A3_1 = sortrows(A3,[2]);
A4 = vertcat(A(4).Groups);     % size(A4) = 10  2
A4_1 = sortrows(A4,[2]);
A5 = vertcat(A(5).Groups);     % size(A5) = 10  2
A5_1 = sortrows(A5,[2]);
A6 = vertcat(A(6).Groups);     % size(A6) = 10  2
A6_1 = sortrows(A6,[2]);
A7 = vertcat(A(7).Groups);     % size(A7) = 10  2
A7_1 = sortrows(A7,[2]);
A8 = vertcat(A(8).Groups);     % size(A8) = 10  2
A8_1 = sortrows(A8,[2]);
A9 = vertcat(A(9).Groups);     % size(A9) = 8  2
A9_1 = sortrows(A9,[2]);
A10 = vertcat(A(10).Groups);     % size(A10) = 6  2
A10_1 = sortrows(A10,[2]);
A11 = vertcat(A(11).Groups);     % size(A11) = 1  2
A11_1 = sortrows(A11,[2]);
% Merge all sorted A(n) in one variable
CenA1 = [A1_1;A2_1;A3_1;A4_1;A5_1;A6_1;A7_1;A8_1;A9_1;A10_1;A11_1];
% Separate these sorted coulmns by x and y coordinate
xcen1 = CenA1(:,1);
ycen1 = CenA1(:,2);
0 comentarios
Respuesta aceptada
  dpb
      
      
 el 4 de Ag. de 2019
        You were almost there...since each element in the struct array has just 2 columns, they can be catenated vertically--so convert the struct to an array like you were doing except do it globally...
XY=vertcat(A.Groups);
Now if it is needed to actually sort within the individual arrays, use a loop to sort first...unfortunately, structfun won't work on a struct array and arrayfun expects every array to be same size so have to write the explicit loop here...but that's not hard--
for i=1:numel(A)
  A(i).Groups=sortrows(A(i).Groups,2);
end
and first, then catenate the result.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Structures 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!

