MATLAB: How to subs element of strucs in a loop

structuressymbolic

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

Best Answer

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