Averaging specific rows and specific columns in N by N matrix
    조회 수: 5 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  Mathieu NOE
      
 2023년 1월 10일
        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
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

