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

9 views (last 30 days)
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

Accepted Answer

John D'Errico
John D'Errico on 21 May 2023
Edited: John D'Errico on 21 May 2023
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

More Answers (0)

Categories

Find more on Configure and View Diagnostics in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!