このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
piecewise
条件定義された式または関数
説明
例
区分的式の定義と評価
piecewise
を使用して次の区分的式を定義します。
syms x
y = piecewise(x < 0,-1,x > 0,1)
y =
subs
を使用して x
を置き換え、-2
、0
、および 2
のときの y
を評価します。y
は、x = 0
では未定義であるため、値は NaN
になります。
subs(y,x,[-2 0 2])
ans =
区分的関数の定義
次の関数をシンボリックに定義します。
syms y(x)
y(x) = piecewise(x < 0,-1,x > 0,1)
y(x) =
y(x)
はシンボリック関数であるため、x
の値について直接評価できます。-2
、0
および 2
のときの y(x)
を評価します。y(x)
は、x = 0
では未定義であるため、値は NaN
になります。詳細は、シンボリック関数の作成を参照してください。
y([-2 0 2])
ans =
どの条件も true ではない場合の値の設定
どの条件も true ではない場合の区分的関数の値 ("その他の値" と呼ばれる) を、追加の入力引数を指定して設定します。追加の引数を指定しない場合、関数のその他の値は、既定では NaN
です。
区分的関数の定義
syms y(x)
y(x) = piecewise(x < -2,-2,(-2 < x) & (x < 0),0,1)
y(x) =
linspace
を使用して x
の値を生成し、区間 -3
から 1
で y(x)
を評価します。他の条件が true でないため、-2
および 0
のときの y(x)
は 1
と評価されます。
xvalues = linspace(-3,1,5)
xvalues = 1×5
-3 -2 -1 0 1
yvalues = y(xvalues)
yvalues =
区分的式のプロット
fplot
を使用して次の区分的式をプロットします。
syms x
y = piecewise(x < -2,-2,-2 < x < 2,x,x > 2,2);
fplot(y)
仮定と区分的式
区分的式では、作成時に既存の仮定が適用されます。区分的式の作成後に設定された仮定は、simplify
を使用して式に適用します。
x > 0
と仮定します。次に、同じ条件 x > 0
を持つ区分的式を定義します。piecewise
は自動的に仮定を適用して条件を単純化します。
syms x
assume(x > 0)
pw = piecewise(x < 0,-1,x > 0,1)
pw =
x
の仮定を消去して計算を続けます。
assume(x,'clear')
x > 0
の条件を持つ区分的式 pw
を作成します。次に、x > 0
という仮定を設定します。simplify
を使用して pw
に仮定を適用します。
pw = piecewise(x < 0,-1,x > 0,1); assume(x > 0) pw = simplify(pw)
pw =
x
の仮定を消去して計算を続けます。
assume(x,'clear')
区分的式の微分、積分、極限の計算
diff
、int
、および limit
をそれぞれ使用して、区分的式の微分、積分、極限を求めます。
diff
を使用して次の区分的式を微分します。
syms x
y = piecewise(x < -1,1/x,x >= -1,sin(x)/x);
diffy = diff(y,x)
diffy =
int
を使用して、y
を積分します。
inty = int(y,x)
inty =
limit
を使用して、0
における y
の極限を求めます。
limit(y,x,0)
ans =
-1
における y
の右側極限と左側極限を求めます。詳細は、limit
を参照してください。
limit(y,x,-1,'right')
ans =
limit(y,x,-1,'left')
ans =
区分的式の基本的な演算
2 つの区分的式の和算、減算、除算および乗算を行います。結果の区分的式は、最初の区分的式が定義される場所でのみ定義されます。
syms x
pw1 = piecewise(x < -1,-1,x >= -1,1);
pw2 = piecewise(x < 0,-2,x >= 0,2);
add = pw1+pw2
add =
sub = pw1-pw2
sub =
mul = pw1*pw2
mul =
div = pw1/pw2
div =
区分的式の変更または拡張
区分的式の変更は、subs
で式の一部を置き換えることによって変更します。区分的式の拡張は、新しい区分的式のその他の値として式を指定します。この操作により 2 つの区分的式が結合されます。piecewise
では条件の重複や競合はチェックされません。代わりに、piecewise
は、if-else ラダーと同様に、最初の真条件の値を返します。
subs
を使用して、区分的式の条件 x < 2
を x < 0
に変更します。
syms x
pw = piecewise(x < 2,-1,x > 0,1);
pw = subs(pw,x < 2,x < 0)
pw =
条件 x > 5
と値 1/x
を pw
に追加するには、pw
をその他の値とする新しい区分的式を作成します。
pw = piecewise(x > 5,1/x,pw)
pw =
入力引数
cond
— 条件
シンボリックな条件 | シンボリック変数
条件。シンボリックな条件または変数として指定します。シンボリック変数は未知条件を表します。
例: x > 2
val
— 条件が満たされた場合の値
数値 | ベクトル | 行列 | 多次元配列 | シンボリック数 | シンボリック変数 | シンボリック ベクトル | シンボリック行列 | シンボリック多次元配列 | シンボリック関数 | シンボリック式
条件を満たす場合の値。数値、ベクトル、行列または多次元配列、あるいはシンボリック数、変数、ベクトル、行列、多次元配列、関数または式として指定します。
otherwiseVal
— どの条件も true ではない場合の値
数値 | ベクトル | 行列 | 多次元配列 | シンボリック数 | シンボリック変数 | シンボリック ベクトル | シンボリック行列 | シンボリック多次元配列 | シンボリック関数 | シンボリック式
どの条件も true ではない場合の値。数値、ベクトル、行列または多次元配列、あるいはシンボリック数、変数、ベクトル、行列、多次元配列、関数または式として指定します。otherwiseVal
が指定されていない場合、この値は NaN
になります。
出力引数
ヒント
piecewise
は条件の重複や競合をチェックしません。区分的式は、最初の真条件の値を返し、以降の真の式をすべて無視します。このように、piecewise
は if-else ラダーによく似ています。
バージョン履歴
R2016b で導入
参考
and
| assume
| assumeAlso
| assumptions
| if
| in
| isAlways
| not
| or
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)