필터 지우기
필터 지우기

calculating mean values of a 3D matrix

조회 수: 214 (최근 30일)
noa
noa 2012년 10월 9일
댓글: ankit patel 2020년 4월 11일
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
Deepak Singh
Deepak Singh 2015년 7월 15일
You can mention the dimension you want to take mean across. Something like this will work: x=mean(mat,3);
ankit patel
ankit patel 2020년 4월 11일
its not working if i change the value 3 with more than 3 in your equation.

댓글을 달려면 로그인하십시오.

채택된 답변

Andrei Bobrov
Andrei Bobrov 2012년 10월 9일
out = mean(yourarray3D,3)
  댓글 수: 5
Akshay Bhardwaj
Akshay Bhardwaj 2018년 5월 24일
편집: Akshay Bhardwaj 2018년 5월 24일
out = std(yourarray3d,[],3)
BBB
BBB 2019년 11월 13일
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

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Zoe
Zoe 2017년 11월 28일
shape2 = reshape(yourarray,[100 79*64]);
meanArray = mean(shape2,2);

카테고리

Help CenterFile Exchange에서 Image Data Workflows에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by