Replacing the variable that are generated through loops ?

3 views (last 30 days)
I have a code that generate the equation through loops :
Eqn(1)=4*K_T*P(1, 0)*P(4, 3) - 4*K_L*P(1, 0)*P(5, 4) + 4*K_T*P(2, 1)*P(3, 2) - 4*K_T*P(1, 0)*P(5, 4)
Eqn(2)= 2*K_T*P(3, 2)^2 + 4*K_T*P(1, 0)*P(5, 4) + 4*K_T*P(2, 1)*P(4, 3)
Please Note - In P(i,j) - i and j are not specifying any MATRIX position. They are numbers which are generated through some equation.P(i,j) are variables. There are many such variables. Now I want to replace them with some other variables.
So, my question is - Is it possible that the variables get changed to my desired variables, which i would specify ?
like P(1,0)==C(1)
P(3,2)==C(4)
thanks !!
  3 Comments
Walter Roberson
Walter Roberson on 20 Dec 2018
To confirm, P(1,0) designates not P indexed at row 1 column 0, but rather a distinquished scalar variable P_1_0 and P(5,4) is a distinguished scalar variable P_5_4 rather than P indexed at row 5 column 4?

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 20 Dec 2018
B = 1;
P = sym('P', [B+5 B+4]);
Eqn(1) = 4*K_T*P(B+1, B+0)*P(B+4, B+3) - 4*K_L*P(B+1, B+0)*P(B+5, B+4) + 4*K_T*P(B+2, B+1)*P(B+3, B+2) - 4*K_T*P(B+1, B+0)*P(B+5, B+4);
Eqn(2) = 2*K_T*P(B+3, B+2)^2 + 4*K_T*P(B+1, B+0)*P(B+5, B+4) + 4*K_T*P(B+2, B+1)*P(B+4, B+3);
subs(Eqn, [P(B+1, B+0), P(B+3,B+2)], [C(1), C(4)])
  2 Comments
P K
P K on 20 Dec 2018
Walter
Can you explain it ?
In the Eqn(1) - your code has P(B+1, B+0), which would result P(2,1) as output instead of P(1,0).
Walter Roberson
Walter Roberson on 20 Dec 2018
Edited: Walter Roberson on 20 Dec 2018
It does not replace P(2,1) as output: it adjusts indexing bases from 0 to 1.
It would, however, replace P(1,0) with P_2_1 because P = sym('P', [B+5 B+4]); is one based. You can get around that and have P10 appear instead if you use
temp_nn = sym('P%d%d', [5, 4]);
temp_0n = sym({'P00', 'P01', 'P02', 'P03', 'P04'});
temp_n0 = sym({'P10'; 'P20'; 'P30'; 'P40'; 'P50'});
P = [temp_0n; [temp_n0, temp_nn]];

Sign in to comment.

Categories

Find more on Mathematics 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!