creating loop and storing eigenvalues from random matrices
7 views (last 30 days)
Show older comments
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.
0 Comments
Accepted Answer
Walter Roberson
on 29 Jun 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
More Answers (0)
See Also
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!