I can't use int for functions

5 views (last 30 days)
f4r3in
f4r3in on 29 Jan 2017
Edited: Star Strider on 29 Jan 2017
I use Matlab R2016a. I write a function but I can't use int to get integrate:
function y=g1(x)
if x>0
y=1;
else
y=-1;
end
end
and when I run :" int(g1) " I receive this error :
int(g1)
Not enough input arguments.
Error in g1 (line 2)
if x>0
what should I do. please help step by step because I am beginner.

Answers (1)

Star Strider
Star Strider on 29 Jan 2017
Edited: Star Strider on 29 Jan 2017
Your ‘g1’ is a function, so you have to pass it the argument you wrote it to evaluate. The integral function does this implicitly (so you do not actually see it).
I would use the integral function, not the Symbolic Math Toolbox int function (unless you have to do this symbolically):
g1 = @(x) (x>0).*(1) + (x<=0).*(-1);
a = -pi;
b = pi;
Result = integral(g1, a, b);
I used ‘logical indexing’ to define ‘g1’ here. It is more efficient.

Community Treasure Hunt

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

Start Hunting!