I wanna implement this function, but it says there is an syntax error..
1 view (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
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
0 Comments
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!