Calculate arithmetic average based on block numbers
이전 댓글 표시

Hi there,
This is a 2D matlab cell that I have (SEE ATTACHED IMAGE)
I want to average block numbers 1,2,3,4 and add into a new matrix (say A), and then average of 5,6,7,8 in 2nd row of matrix A, and then average of 9,10,11,12... in the 3rd row, etc.
Any help will be greatly appreciated.
Thanks, Akul
채택된 답변
추가 답변 (1개)
Image Analyst
2018년 11월 3일
편집: Image Analyst
2018년 11월 3일
This should never have been a cell to begin with. So use cell2mat() to convert to a matrix. Then loop over columns reshaping to 4 wide, and call mean:
A = cell2mat(cellArray);
%A = randi(4, 12, 13)
[rows, columns] = size(A);
meanValues = zeros(rows/4, 13);
for col = 1 : columns
thisCol = A(:, col); % Must be a multiple of 4!!!
reshaped = reshape(thisCol, 4, [])
meanValues(:, col) = mean(reshaped, 1);
end
meanValues
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!