How to calculate mean and variance?

조회 수: 225 (최근 30일)
SHRIVATHSA S.
SHRIVATHSA S. 2017년 1월 19일
답변: Nikos Lambadakis 2022년 4월 1일
Greetings. I have generated a vector of 10,000 complex samples. I want to calculate the Mean and Variance of the samples. How can I do it without using the built-in functions _ mean()_ and * var()* ? and how do I do that in a loop? Please help.
Thank you
  댓글 수: 1
Ana Soph
Ana Soph 2020년 5월 6일
How can convert to 1 minute to 10 minutes, a wind directio data ? please, i have a matrix fo 1440x31

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

채택된 답변

Jorge Mario Guerra González
Jorge Mario Guerra González 2017년 1월 19일
편집: Jorge Mario Guerra González 2017년 1월 19일
Since you want to do it without using the functions, just do:
A=rand(1000,1); %your array
sum1=0;
for i=1:length(A)
sum1=sum1+A(i);
end
M=sum1/length(A); %the mean
sum2=0;
for i=1:length(A)
sum2=sum2+ (A(i)-M)^2;
end
V=sum2/length(A); %Varaince
  댓글 수: 4
SHRIVATHSA S.
SHRIVATHSA S. 2017년 1월 19일
Thank you @Jorge Guerra for the answer. It was really helpful
Jorge Mario Guerra González
Jorge Mario Guerra González 2017년 1월 19일
편집: Jorge Mario Guerra González 2017년 1월 19일
@Stephen Cobeldick absolutely agree, that was just a fast script I wrote to show the proccedure. I edited the answer

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

추가 답변 (3개)

Walter Roberson
Walter Roberson 2017년 1월 19일
Mean is the average -- the sum divided by the number of entries.
Variance is the sum of the squares of (the values minus the mean), then take the square root and divided by the number of samples
You can vectorize the calculation using sum().
To use a for loop to calculate sums, initialize a running total to 0, and then each iteration of the loop, add the current value to the running total.
  댓글 수: 3
Jurgen
Jurgen 2017년 12월 19일
This answer contradicts the variance formula on the MATLAB website (no square root). Oh and wikipedia disagrees. The MATLAB variance assumes a uniform probability distribution. A very important assumption.
John D'Errico
John D'Errico 2020년 7월 24일
@ Jurgen - you make no sense in some of what you said, although you are correct about the square root being incorrect in this answer. Variance has no square root in it.
A variance is something you can compute from the data, or for a population, but there is no assumption about the underlying distribution, nor is there any need to make such an assumption.

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


Olayemi Akinsanya
Olayemi Akinsanya 2017년 9월 16일
편집: Olayemi Akinsanya 2017년 9월 16일
P=[10:2:70]
i wrote a script for variance, it gives me a value of 320. when i check with var(P), it gives me a value of 330.6667. can someone advice what i did wrong.

Nikos Lambadakis
Nikos Lambadakis 2022년 4월 1일
A=rand(1000,1); %your array
sum((A(1:end)-sum(A(1:end))./length(A)).^2)/(length(A)-1) % the same result as
% var(A)
var(A) == sum((A(1:end)-sum(A(1:end))./length(A)).^2)/(length(A)-1)
ans =
logical
1

카테고리

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