Retreiving equations from a matrix

I have a symbolic matrix that has equation in it.
I want to extract the equations.
I have the code from the inside nodes.
B =
[50, 100, 100, 200]
[50, T23 - 4*T22 + T32 + 150, T22 - 4*T23 + T33 + 300, 200]
[50, T22 - 4*T32 + T33 + 350, T23 + T32 - 4*T33 + 500, 200]
[50, 300, 300, 200]
for i=2:n;
for j=2:m;
eq(i,j)=B(i,j)
end
end
But this doesnt work
I would like my answer to be
eq(2,2)=B(2,2)
eq(2,3)=B(2,3)

4 Comments

or equation22=B(2,2)
Matt J
Matt J on 2 Nov 2021
Edited: Matt J on 2 Nov 2021
What should eq(i,1) and eq(1,j) be? Why not just set eq=B if eq and B are pretty much the same.
I want them to be individual equation to use the solve function. Is there any easier method to solve for the symbolic functions inside the matrix?
I would want eq(2,1) to equal the equation of B(2,1) so I can use Solve(eq,T1 T2 T3 T4)

Sign in to comment.

 Accepted Answer

syms B eq T23 T22 T32 T33
B =[50, 100, 100, 200;
50, T23 - 4*T22 + T32 + 150, T22 - 4*T23 + T33 + 300, 200;
50, T22 - 4*T32 + T33 + 350, T23 + T32 - 4*T33 + 500, 200;
50, 300, 300, 200];
[n,m]=size(B);
eq(2:n,2:m)=B(2:end,2:end)
eq = 
eq(2,2)
ans = 

4 Comments

When i run this I get
eq =
[0, 0, 0]
[0, T23 - 4*T22 + T32 + 150, T22 - 4*T23 + T33 + 300]
[0, T22 - 4*T32 + T33 + 350, T23 + T32 - 4*T33 + 500]
Ill post my whole code
Well, I already showed you what I get.
What if i wanted to list all of the those values ie (B22,B23,B32,B33) like I just type with commas in between them So I can use
eqns = [B(2,2),B(2,3),B(3,2),B(3,3)
]
[A,b] = equationsToMatrix(eqns)
Y = inv(A)
Y*b
This code works. Thanks for you suggestion of just using the B matrix but I just need a way to call these values and seperate them by comas so I can use inverse matrix to solve it.

Sign in to comment.

More Answers (1)

Here is the corrected code:
clearvars
syms T22 T32 T33 T23
%% Note how your equations are set up
B =[50, 100, 100, 200;
50, T23 - 4*T22 + T32 + 150, T22 - 4*T23 + T33 + 300, 200;
50, T22 - 4*T32 + T33 + 350, T23 + T32 - 4*T33 + 500, 200;
50, 300, 300, 200];
for ii = 1:4
for jj=1:4
EQN(ii,jj)=B(ii,jj)
end
end
% Test
EQN(2,2)
EQN(3,2)

Categories

Products

Tags

Community Treasure Hunt

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

Start Hunting!