Subs not working for symbolic expressions

7 visualizaciones (últimos 30 días)
Matthew Thomas
Matthew Thomas el 2 de Feb. de 2018
Comentada: Jes Bel el 13 de Jul. de 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 comentario
Jes Bel
Jes Bel el 13 de Jul. de 2018
I think you need [] instead of {} with subs

Iniciar sesión para comentar.

Respuesta aceptada

Steven Lord
Steven Lord el 2 de Feb. de 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.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by