How to calculate average of certain value in a matrix?

조회 수: 4 (최근 30일)
afrya
afrya 2013년 12월 5일
편집: Andrei Bobrov 2013년 12월 5일
Hello, My problem is about how to calculate the average of certain values in a large matrix. I know how to calculate the 1st average of the matrix with matlab, but for the other one I tried with a for loop but I didn't manage to solve the problem.
Example:
calculate the average of every 2 values of A
A=
1
2
3
4
5
6
7
8
Av1=1,5 WITH MATLAB Av1=sum(A(1:2;1),1)./2
Av2=3,5
Av3=5,5
Av4=7,5
I did the following loop but it doesn't work :
for i=1:3
for k=2:4
Av=sum(A(i*2+1:2*k,1),1)./2
end
end
Thank you in advance

채택된 답변

Andrei Bobrov
Andrei Bobrov 2013년 12월 5일
편집: Andrei Bobrov 2013년 12월 5일
Av = mean(A([1:2:end;2:2:end]));
or
Av = sum(A([1:2:end;2:2:end]))/2;
ADD
n = 3;
Av = accumarray(floor((n:numel(A)+n-1)/n)',A(:),[],@mean);
or
n=3;
p = reshape([A(:);nan(mod(-numel(A),n),1)],n,[]);
l = isnan(p);
p(l) = 0;
Av = sum(p)./sum(~l);
if rem(numel(A),n) == 0 , just:
Av = mean(reshape(A,n,[]));
if you have Image Processing Toolbox then
Av = blockproc(A,[1 n],@(x)mean(x.data));
  댓글 수: 3
afrya
afrya 2013년 12월 5일
I didn't understand the syntax
Andrei Bobrov
Andrei Bobrov 2013년 12월 5일
see ADD part

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

추가 답변 (1개)

Omair
Omair 2013년 12월 5일
편집: Omair 2013년 12월 5일
Do you mean every 2nd value of A?
mean(A(1:2:end))
  댓글 수: 1
afrya
afrya 2013년 12월 5일
I mean,how to calculate every 2 values of A At the end, you'll get 4 averages in the case of the exemple

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

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by