how can i solve the error "Undefined function 'sign' for input arguments of type 'sym'."

21 visualizaciones (últimos 30 días)
i have the following function
function [S] = Signfunciton(f,a,b)
v=-a:0.5:b;
S= f(v);
S=sign(S);
then i give it inputs
>>syms x
>>f(x)=3*x+2
>>Signfunction(f,4,5)
but i always get the error "Undefined function 'sign' for input arguments of type 'sym'."
how can i solve this?? thank you

Respuesta aceptada

Wayne King
Wayne King el 29 de Sept. de 2013
Do you have the Symbolic Toolbox?
And if you do, why aren't you just doing
syms x;
f = 3*x+2;
sign(subs(f,-4:0.5:5))
  1 comentario
Paolo
Paolo el 29 de Sept. de 2013
i don't know what a symbolic toolbox is but i used your code and it works great. but i still don't understand what was wrong with my code.

Iniciar sesión para comentar.

Más respuestas (1)

Wayne King
Wayne King el 29 de Sept. de 2013
Editada: Wayne King el 29 de Sept. de 2013
Yours works for me:
function [S] = Signfunction(f,a,b) %you misspelled this above
v=-a:0.5:b;
S= f(v);
S=sign(S);
Then execute:
syms x;
f(x) = 3*x+2;
Signfunction(f,4,5);
Note if you don't want a symbolic output
clearvars x;
f = @(x) 3*x+2;
S = Signfunction(f,4,5);
Now S is a double-precision vector.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by