I wanna implement this function, but it says there is an syntax error..

function y=myfunc(x)
y=(x<0).*(2*exp(x)+(0<=x&x<1).*2+(1<=x&x<3).*(x^2-4*x+5)+(3<=x).*(1+cos(x-3));
endfunction

 Réponse acceptée

What langiuage are you using when you end a function with the statement endfunction? Not MATLAB.
As well, IF you had posted the error message, it would have said something about parentheses. So I fixed that.
Finally, it also yells at you, because the function was not properly vectorized. So you wrote this:
y=(x<0).*(2*exp(x)+(0<=x&x<1).*2+(1<=x&x<3).*(x^2-4*x+5)+(3<=x).*(1+cos(x-3));
and I changed it to this:
y=(x<0).*(2*exp(x))+(0<=x&x<1).*2+(1<=x&x<3).*(x.^2-4*x+5)+(3<=x).*(1+cos(x-3));
The differences are important.
fplot(@myfunc,[-5,5])
function y=myfunc(x)
y=(x<0).*(2*exp(x))+(0<=x&x<1).*2+(1<=x&x<3).*(x.^2-4*x+5)+(3<=x).*(1+cos(x-3));
end

Plus de réponses (0)

Catégories

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by