Can I assign a variable to a number in a matrix from another matrix?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Anastasia Zistatsis
le 2 Mar 2021
Commenté : Walter Roberson
le 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 commentaires
Réponse acceptée
Walter Roberson
le 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 commentaires
Walter Roberson
le 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
Plus de réponses (1)
Steven Lord
le 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 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!