Subs not working for symbolic expressions

7 vues (au cours des 30 derniers jours)
Matthew Thomas
Matthew Thomas le 2 Fév 2018
Commenté : Jes Bel le 13 Juil 2018
I have the following code and want to evaluate s at x(1) and y(1) and store it to s in s(1). The expression worked fine when I was using
s1 = (fun,{x,y},{x1,y1});
I'm unsure why the following code is failing to run?
A = 39.3;
B = 19.7;
t = 0.1;
syms x y
pxysym = A*x-3*x^2-4*x*y;
qxysym = B*y-2*x*y-y^2;
pxsym = diff(pxysym,x);
pysym = diff(pxysym,y);
qxsym = diff(qxysym,x);
qysym = diff(qxysym,y);
sxsym = pxysym*pxsym+qxysym*qxsym;
sysym = pxysym*pysym+qxysym*qysym;
x = zeros();
y=zeros();
x(1) = 5
y(1) = 5
ssym=0.5*(pxysym^2+qxysym^2);
s(1) = subs(ssym,{x,y},{x(1),y(1)})
TIA
  1 commentaire
Jes Bel
Jes Bel le 13 Juil 2018
I think you need [] instead of {} with subs

Connectez-vous pour commenter.

Réponse acceptée

Steven Lord
Steven Lord le 2 Fév 2018
Look at the output of the following command executed immediately before your subs call.
whos
Is x a symbolic variable at that point? What in your symbolic expression is your subs call actually trying to replace?
I would change the name of the variable containing the numeric values you want to substitute into your symbolic expression to something else, like "xx = 5". Then substitute the value of xx for the symbolic variable x.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by