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 Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by