Generating covariance from matrix

10 visualizaciones (últimos 30 días)
Ryan Chow
Ryan Chow el 24 de En. de 2020
Comentada: Walter Roberson el 24 de En. de 2020
I have the data y as follows and I am trying to find the covariance between the 1st row and 2nd row, 2nd row and 3rd row, 3rd row and 4th row, so on. I don't seem to be able to save the values into a matrix either and would appreciate any hints. Thank you!
y = rand(20,1)
for i = 1:20
autocov=cov(y(i:19),y(i+1:20))
end

Respuesta aceptada

Walter Roberson
Walter Roberson el 24 de En. de 2020
Editada: Walter Roberson el 24 de En. de 2020
N = 20;
y = rand(N,1);
autocov = zeros(2, 2, N);
for i = 1:N
autocov(:, :, i) = cov(y(i:19),y(i+1:20));
end
The result will be a 2 x 2 x 20 array.
  2 comentarios
Ryan Chow
Ryan Chow el 24 de En. de 2020
I'm guessing the code should be something like (after modification from yours):
N = 20;
y = rand(N,1);
for i = 1:N
autocov = cov(y(i:19),y(i+1:20))
end
What I then get would be 19 of the following:
autocov =
0.0662 -0.0166
-0.0166 0.0630
autocov =
0.0486 -0.0194
-0.0194 0.0666
Is there any way I could write a loop to save those numbers in bold in another vector?
Thanks!
Walter Roberson
Walter Roberson el 24 de En. de 2020
N = 20;
y = rand(N,1);
cov12 = zeros(1,N);
for i = 1:N
autocov = cov(y(i:19),y(i+1:20));
cov12(i) = autocov(1,2);
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by