Can I assign a variable to a number in a matrix from another matrix?
3 views (last 30 days)
Show older comments
Anastasia Zistatsis
on 2 Mar 2021
Commented: Walter Roberson
on 11 Mar 2021
Using the matrix that comes from eig(), I would like to assign individual values in it to 3 separate variables, and then plug those into a separate matrix. However, I get an error. How do I do this?
E = eig(A)
E(1,1) = w1;
E(2,1) = w2;
E(3,1) = w3;
ans = [m1*w1^2 0 0;
0 m2*w2^2 0;
0 0 m3*w3^2 0]
Unrecognized function or variable 'w1'.
Error in eigen (line 23)
E(1,1) = w1;
0 Comments
Accepted Answer
Walter Roberson
on 2 Mar 2021
A = magic(7)
E = eig(A)
w1 = E(1,1)
w2 = E(2,1)
w3 = E(3,1)
m1 = 3; m2 = 11; m3 = -7;
output = [
m1*w1^2 0 0;
0 m2*w2^2 0;
0 0 m3*w3^2]
6 Comments
Walter Roberson
on 11 Mar 2021
syms k
A = [2*k -k -k;
-k 2*k -k;
-k -k 2*k];
E = eig(A)
If you are expecting 2.449 then your k would have to be roughly 0.816
More Answers (1)
Steven Lord
on 2 Mar 2021
There's a way to do this without creating 2*n individual variables.
A = magic(7);
E = eig(A);
w = E(1:3);
m = [3; 11; -7];
output1 = diag(m.*(w.^2))
w1 = E(1,1);
w2 = E(2,1);
w3 = E(3,1);
m1 = 3; m2 = 11; m3 = -7;
output2 = [ m1*w1^2 0 0;
0 m2*w2^2 0;
0 0 m3*w3^2]
You can compare output1 and output2. The first block of code scales to larger matrices with more eigenvalues.
0 Comments
See Also
Categories
Find more on Creating and Concatenating 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!