How to declare a function having bounds ?

example-
f(x)= 0 x<0
x 0<x<1
-1 x>1

2 件のコメント

David Young
David Young 2015 年 2 月 9 日
編集済み: David Young 2015 年 2 月 9 日
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 2015 年 2 月 9 日
function given above is just for example not the actual function. Just wanted to know how to declare such a function.

サインインしてコメントする。

 採用された回答

Matt J
Matt J 2015 年 2 月 8 日
編集済み: Matt J 2015 年 2 月 8 日

0 投票

One way,
f=@(x) x.*(x>=0 & x<=1) - (x>1)

2 件のコメント

David Webb
David Webb 2015 年 2 月 9 日
Can you please explain ... Thanks!!
David Webb
David Webb 2015 年 2 月 9 日
Got it Thanks man !!

サインインしてコメントする。

その他の回答 (2 件)

David Young
David Young 2015 年 2 月 9 日

1 投票

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. 2015 年 2 月 8 日
編集済み: Guillaume 2015 年 2 月 9 日

0 投票

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 件のコメント

David Webb
David Webb 2015 年 2 月 9 日
Thanks for the answer ..
David Young
David Young 2015 年 2 月 9 日
編集済み: David Young 2015 年 2 月 9 日
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

サインインしてコメントする。

カテゴリ

製品

質問済み:

2015 年 2 月 8 日

コメント済み:

2015 年 2 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by