how to subs element of strucs in a loop?

1 view (last 30 days)
i want to write a program to solve indefinite eqs. answers are located in sol(struct) e.g sol.x1 mean x1 and etc cause number of variable is unknown and they are assigned to symbolic variable(z), I must substitude z with 1 my problem is define a for loop to write following code because I cant define sol.x(i) in a loop
sol=solve(EQ==0)
subs(sol.x1,z,1)
subs(sol.x2,z,1)d
  1 Comment
Stephen23
Stephen23 on 27 Jan 2016
Edited: Stephen23 on 27 Jan 2016
Amirhosein Ghenaati's "Answer" moved here:
how can i make a n*n matrix K which has symbolic class and contains all symbolic elements as k11 k12...k1n.I can't obtain K with a for loop
@Amirhosein Ghenaati: please use the comment fields for writing comments.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 27 Jan 2016
K = sym('k', n, n)
varnames = fieldnames(sol);
numvars = length(varnames);
solz = struct();
for K = 1 : numvars
thisvar = varnames{K};
solz.(thisvar) = subs(sol.(thisvar), z, 1);
end

More Answers (0)

Categories

Find more on Construct and Work with Object Arrays 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!