Mean of a Matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I have a 51x51 2D matrix that I need to take a mean off, but it has to give me back a 51x51 2D matrix as an output.
Please see the sample code below:
rand_image_stim = rand(10000,51,51);
kk = 1:length(rand_image_stim);
firing_rate_kk(kk) = 0;
gab_filt = z_cos.*z_gauss;
lp(kk) = 0;
for kk = 1:length(rand_image_stim)
output_kk = squeeze(rand_image_stim(kk,:,:)).*gab_filt;
firing_rate_kk(kk) = sum(output_kk,'all');
jk = squeeze(rand_image_stim(kk,:,:))*firing_rate_kk(kk);
lp = mean(jk,2); %this is where I need help
end
8 comentarios
Adam
el 13 de Nov. de 2019
I don't really have the time to look in depth at the code and give a full syntactically correct answer, but from what I can see you just want to store jk in the loop as e.g.
jk( kk, :, : ) = squeeze(rand_image_stim(kk,:,:))*firing_rate_kk(kk);
and remove the last line from the loop, then after the end of the for loop simply:
result = mean( jk );
should give what you want.
Respuestas (1)
Luna
el 13 de Nov. de 2019
Editada: Luna
el 13 de Nov. de 2019
your for loop is length(rand_image_stim). So your mean value calculated 10000 times. You should store it and later get the mean all.
Try this:
rand_image_stim = rand(10000,51,51);
kk = 1:length(rand_image_stim);
firing_rate_kk(kk) = 0;
gab_filt = z_cos.*z_gauss;
lp(kk,51) = 0; % 10000 x 51 matrix
for kk = 1:length(rand_image_stim)
output_kk = squeeze(rand_image_stim(kk,:,:)).*gab_filt;
firing_rate_kk(kk) = sum(output_kk,'all');
jk = squeeze(rand_image_stim(kk,:,:))*firing_rate_kk(kk);
lp(kk,:) = mean(jk,2); %this is where I need help
end
your_mean_value = mean(lp,'all');
3 comentarios
Luna
el 13 de Nov. de 2019
Editada: Luna
el 13 de Nov. de 2019
I have made a small edit to my answer please check again. You will have 10000 mean values for each loop. It is not possible to get 51x51 mean values. Or did I misunderstand? if you want to get 51x51 mean values in the end you should have kk = 51 but it is 10000. Also in the beginning you initialize lp 1x10000 vector filled with zeros already.
Ver también
Categorías
Más información sobre Descriptive Statistics and Visualization 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!