Can I assign a variable to a number in a matrix from another matrix?
    6 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!


