calculating mean values of a 3D matrix

115 Ansichten (letzte 30 Tage)
noa
noa am 9 Okt. 2012
Kommentiert: ankit patel am 11 Apr. 2020
hi.
I have a 3D matrix. size 79x63x100
I want to calc the mean of each of the 79x63 values so to get a 2D matrix the size of 79x63x1
but when i do mean(mat) i get it in the size of 1x63x100
how should I write it?
Thanks, Noa
  2 Kommentare
Deepak Singh
Deepak Singh am 15 Jul. 2015
You can mention the dimension you want to take mean across. Something like this will work: x=mean(mat,3);
ankit patel
ankit patel am 11 Apr. 2020
its not working if i change the value 3 with more than 3 in your equation.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 9 Okt. 2012
out = mean(yourarray3D,3)
  5 Kommentare
Akshay Bhardwaj
Akshay Bhardwaj am 24 Mai 2018
Bearbeitet: Akshay Bhardwaj am 24 Mai 2018
out = std(yourarray3d,[],3)
BBB
BBB am 13 Nov. 2019
Hi,
I also have a similar question.
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.
How can do this using the mean function. I need to put this in a loop as well. Please see code below for reference:
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 = squeeze(mean(jk,2)); %Need help with this last bit!
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Zoe
Zoe am 28 Nov. 2017
shape2 = reshape(yourarray,[100 79*64]);
meanArray = mean(shape2,2);

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by