マトラブを使用して区分関数を生成する方法

MATLABでは、以下の方法で部分関数を生成できます。

方法1: if-else文を利用する

function y = piecewiseFunc(x)
    if x < 0
        y = x^2;
    elseif x >= 0 && x < 5
        y = 2*x + 1;
    else
        y = sqrt(x);
    end
end

方法2:switch-case文を使う

function y = piecewiseFunc(x)
    switch true
        case x < 0
            y = x^2;
        case x >= 0 && x < 5
            y = 2*x + 1;
        otherwise
            y = sqrt(x);
    end
end

方法3:ベクトル化演算を用いる

function y = piecewiseFunc(x)
    y = zeros(size(x));
    y(x < 0) = x(x < 0).^2;
    y(x >= 0 & x < 5) = 2*x(x >= 0 & x < 5) + 1;
    y(x >= 5) = sqrt(x(x >= 5));
end

3通りの方法いずれも、入力値xから、対応する区分関数の値yを返すものです。実装する区分関数の形に応じて、3つの方法のうち1つを選択してください。

bannerAds