Borrar filtros
Borrar filtros

find mean for each 4 row in 124x7 matrix

1 visualización (últimos 30 días)
nada
nada el 20 de En. de 2019
Comentada: nada el 21 de En. de 2019
Hi all ,,,
I have matrix U=124 x 7
I want to find the mean through all 4 rows of each column
the result be 31 x7

Respuesta aceptada

madhan ravi
madhan ravi el 20 de En. de 2019
Editada: madhan ravi el 20 de En. de 2019
b=mat2cell(U,repmat(4,1,size(U,1)/4)); % where U is 124 X 7 matrix
R=cellfun(@(x) mean(x),b,'un',0);
Result=vertcat(R{:})
  3 comentarios
madhan ravi
madhan ravi el 21 de En. de 2019
"if there is a simple loop to do that.."
[m,n]=size(U);
Result=zeros(m/4,n);
for k = 1:m/4
Result(k,:)=mean(U(k*4-3:k*4,:));
end
nada
nada el 21 de En. de 2019
That's wonderful ......thank you again

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 20 de En. de 2019
You can do it in as little as two lines of code with blockproc() from the Image Processign Toolbox:
U = randi(9, 124, 7); % Original sample data
% Define the function that we will apply to each block.
% This function will return a value that is the mean of the elements in the block.
% Output array will be 31 by 7.
meanFilterFunction = @(theBlockStructure) mean(theBlockStructure.data(:));
% Block process the image to replace every pixel in the
% 4 pixel by 1 pixel block by the mean of the pixels in the block.
blockSize = [4 1];
blockMeanArray = blockproc(U, blockSize, meanFilterFunction); % Works.
blockproc() moves along in "jumps" of the block size that you specify - it does not slide over by one element at a time like conv2() does. If you'd used conv2() you would have to subsample the result.
  2 comentarios
nada
nada el 20 de En. de 2019
Thank you
but the result was not the elements mean
Image Analyst
Image Analyst el 21 de En. de 2019
It most certainly was. I just double checked it. Check your numbers again.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by