Passing Symbolic Variables into a function as parameters
Ältere Kommentare anzeigen
I am trying to write a function that takes 2 symbolic equations, as well as the symbolic variables to solve for, in as parameters. The function is then supposed to solve for the 2 symbolic variables and then eliminate any solutions that contain imaginary numbers as you can see below.
syms x y
f = (x*y) == 1;
g = (x)+y == 0;
solution = testfunct(f, g, {x}, {y})
function [sols1 sols2] = testfunct(eq1, eq2 , t, s)
sols = solve(eq1, eq2, [t s]);
sols1 = sols.t(imag(sols.t)==0); % "Reference to non-existent field 't'"
sols2 = sols.s(imag(sols.s)==0);
end
I receive an error saying seen in the comment. Now if this code works if I replace that line with
sols1 = sols.x(imag(sols.x)==0); %and the same for sols2 replacing x with y
Running whos gives me that t is a cell containing 1x1 sym which is x so I tried
sols1 = sols.(t{1,1})
which returns an error saying that 'Argument to dynamic structure reference must evaluate to a valid field name.' Even though t{1,1} = x and class(t{1}) = 'sym'.
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Assumptions finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!