make a column matrix with outputs of a for loop

1 view (last 30 days)
I have a for loop and I want the outputs of each iteration to sit in a column matrix. for example i have the code below:
for i=1:5
a=[1 2; i 3]
[P,Q]=eig(a);
end
for the first iteration Q(i=1)=[0.2679 0; 0 3.731], for second iteration I have Q(i=2)=[-0.2361 0; 0 4.2361] and so on. I want to construct a 10*1 column matrix in which all the outputs are after each other like this:
S=[0.2679 3.731 -0.2361 4.2361 ....]
but I really don't know how. it would be appreciated if u help me.
  1 Comment
Mathieu
Mathieu on 20 Jul 2015
Edited: Mathieu on 20 Jul 2015
So you want to concatenate some vectors? Because if yes:
b = [];
for i=1:1:5
a = [1 2]
b = [b a];
end
And the result is a vector with [1 2 1 2 1 2 1 2 1 2] (5 times the vector a)

Sign in to comment.

Accepted Answer

David Schubert
David Schubert on 20 Jul 2015
Use diag(Q) to obtain only the eigenvalues on the diagonal of Q, and then concatenate:
mat = [];
for i=1:5
a=[1 2; i 3];
[P,Q]=eig(a);
mat = [mat; diag(Q)];
end

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!