Averaging specific rows and specific columns in N by N matrix
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Abdulhakim Alezzi
 el 9 de En. de 2023
  
    
    
    
    
    Comentada: Mathieu NOE
      
 el 11 de En. de 2023
            hI friends,
I am trying to do averging for specfic rows with specific columns in C=19*19 matrix to have a final matrix of 5*5.
I am using the following code : 
Y=mean (C([3:5 10:11 16:17, 12:13 19, 1 7, 2 6 8, 14:15],[3:5 10:11 16:17, 12:13 19, 1 7, 2 6 8, 14:15]));
But the output matrix is 1*17.
Any help will be appreciated. 
0 comentarios
Respuesta aceptada
  Mathieu NOE
      
 el 10 de En. de 2023
        hello 
you need somehow to split your 5 domains into separate arrays (like a cell array as below) 
then you can perform a for loop on each submatrix 
try this 
C = rand(19,19);
ind = [{[3:5 10:11 16:17]}; {[12:13 19]}; {[1 7]}; {[2 6 8]}; {14:15}];
for ci = 1:numel(ind) % row
    for cj = 1:numel(ind) % col
        ind_r = ind{ci};
        ind_c = ind{cj};
        Y(ci,cj)=mean(C(ind_r,ind_c),'all');
    end
end
2 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices 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!