Can I assign a variable to a number in a matrix from another matrix?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Walter Roberson
2021-3-2
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 个评论
Walter Roberson
2021-3-11
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
更多回答(1 个)
Steven Lord
2021-3-2
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!