How to declare a function having bounds ?

30 Ansichten (letzte 30 Tage)
David Webb
David Webb am 8 Feb. 2015
Kommentiert: David Webb am 9 Feb. 2015
example-
f(x)= 0 x<0
x 0<x<1
-1 x>1
  2 Kommentare
David Young
David Young am 9 Feb. 2015
Bearbeitet: David Young am 9 Feb. 2015
What is supposed to happen if x=0 or x=1? I'm guessing you mean
0 if x < 0
x if 0 <= x <= 1
-1 if x > 1
David Webb
David Webb am 9 Feb. 2015
function given above is just for example not the actual function. Just wanted to know how to declare such a function.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt J
Matt J am 8 Feb. 2015
Bearbeitet: Matt J am 8 Feb. 2015
One way,
f=@(x) x.*(x>=0 & x<=1) - (x>1)
  2 Kommentare
David Webb
David Webb am 9 Feb. 2015
Can you please explain ... Thanks!!
David Webb
David Webb am 9 Feb. 2015
Got it Thanks man !!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

David Young
David Young am 9 Feb. 2015
I would go for a vectorised function:
function x = clipZeroOne(x)
x(x < 0) = 0;
x(x > 1) = -1;
end
Test examples
clipZeroOne(9)
clipZeroOne(0.5)
clipZeroOne(-0.5)
clipZeroOne([-Inf -3 0 0.2 0.9 1 15 Inf]) % apply to a vector

Erik S.
Erik S. am 8 Feb. 2015
Bearbeitet: Guillaume am 9 Feb. 2015
function f=fcn(x)
if x<0
y = 0;
else if x>=0 && x<1
y = x;
else if x>1
y = -1;
end
In the example f(0) = x.
  2 Kommentare
David Webb
David Webb am 9 Feb. 2015
Thanks for the answer ..
David Young
David Young am 9 Feb. 2015
Bearbeitet: David Young am 9 Feb. 2015
This answer has multiple issues, as they like to say on Wikipedia.
  • What happens if x is exactly equal to 1?
  • The output variable is f but you assign the result to y.
  • "else if" isn't legal MATLAB.
  • The "{} Code" button makes the code display clearly.
I guess what you meant was this
function y = fcn(x)
if x<0
y = 0;
elseif x<1 % it must be greater than or equal to 0
y = x;
else
y = -1; % it must be greater than or equal to 1
end
end

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by