How to declare a function having bounds ?
30 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
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
Akzeptierte Antwort
Weitere Antworten (2)
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
0 Kommentare
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 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
Siehe auch
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!