creating loop and storing eigenvalues from random matrices

6 visualizaciones (últimos 30 días)
Hi,
I am very new to Matlab and I am currently trying to write a code on Matlab for a specific task. I believe I need to write a loop.
I want to generate a 2x2 random covariance matrix so the diagonal entries are in the interval [0,1] and the non-diagonal entries are in the interval [-1,1]. I would like to compute the eigenvalues of this matrix which is straight forward.
Here is the difficult part: But I want to repeat this process for many (say 100 times) random 2x2 covariance matrices. Then for each matrix, I get 2 eigenvalues. I want to be able to store the eigenvalues for all 100 matrices into one vector, giving me a 2*100 = 200-entry vector.
I suspect my code will contain something of the following:
a=-1+2*rand;
A=[rand a; a rand];
v=eig(A)
I am just unsure on how to create a loop with allows me to repeat this task for say 100 times and to store the entries as a big vector.

Respuesta aceptada

Walter Roberson
Walter Roberson el 29 de Jun. de 2012
many_times = 100;
all_v = zeros(2, many_times);
for K = 1 : many_times
a = -1+2*rand;
A = [rand a; a rand];
v = eig(A);
all_v(:, K) = v;
end
  2 comentarios
Vivi
Vivi el 29 de Jun. de 2012
Hi Walter, Thanks for the fast reply. I think this is nearly correct. Here I have a 2x100 vector. I would like 1x200 vector. So say for the first eigenvector, the 1st and 2nd entries of all_v is just eigenvalues of the first eigenvector. And the 3rd and 4th entries of all_v are the eigenvalues of the second eigenvector.
I basically want to plot a histogram of these eigenvalues and get an eigenvalue spectra.
Vivi
Vivi el 29 de Jun. de 2012
Ooh, I discovered the reshape function, that did the trick! Thank you Walter, much appreciated!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Linear Algebra 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