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

Find more on Financial Toolbox in Help Center and File Exchange

Products

Tags

Community Treasure Hunt

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

Start Hunting!