How to resize a 3D matrix?
조회 수: 12 (최근 30일)
이전 댓글 표시
Hi, I want to reduce the size of a 3D image by averaging the values in 3D. For example if the image is 160*216*176. I wrote the code below to process the image to average the values in every 4*4*4 cube thereby creating a new matrix that is 40*54*44 in size.my code is below
X(1:40)=4;
Y(1:54)=4;
Z(1:44)=4;
A=mat2cell(imagestack_1,[X],[Y],[Z]);
average=cellfun(@mean2,A);
But this shows an error
Error using mat2cell (line 97)
Input arguments, D1 through D3, must sum to each dimension of the input matrix size, [160 216 176].'
Anyone who knows Please guide me!!
댓글 수: 3
채택된 답변
Walter Roberson
2017년 3월 14일
You probably had previous values in your X, Y, or Z, making them longer than what would be created with just the above code.
댓글 수: 6
Walter Roberson
2017년 3월 14일
The boundary points do not have 27 neighbors. You should either calculate only on the interior, or you should define what you want the boundary calculation to be.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!