How to center vector to mean zero?

조회 수: 20 (최근 30일)
gsourop
gsourop 2017년 11월 9일
답변: John D'Errico 2017년 11월 9일
Hi everyone,
I would like to center a vector A = randn(50,1) to center, meaning that (1/N)*sum(a(i)) = 0 , where a is the centered vector A, i = 1, .. ,50 and n=50. Moreover, if I have a matrix B = randn(50,4) how could we standardize it, meaning that (1/n)*sum(x(i))=0 and (1/n)*sum(x^2)=1, namely they follow a normal distribution with zero mean and unit variance N(0,1). Could anyone help with these two problems?
  댓글 수: 1
Rik
Rik 2017년 11월 9일
You mean something like x=x-mean(x);? You notation isn't very clear, nor what it precisely is you want to do.

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

채택된 답변

John D'Errico
John D'Errico 2017년 11월 9일
Standardize a vector, by centering to have mean 0, and variance 1.
x = rand(100,1);
x = (x-mean(x))/std(x);
Subtracting the mean centers it. Dividing by the standard deviation is independent of the mean, but it sets the standard deviation (and thus the variance) to 1.
mean(x)
ans =
7.6605e-17
std(x)
ans =
1
var(x)
ans =
1
The population parameters are as close to 0 and 1 as floating point computations can ensure.

추가 답변 (0개)

카테고리

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