Как задать кусочную функцию в matlab?

Пользователь

от caterina , в категории: Другие , 2 года назад

Как задать кусочную функцию в matlab?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от loren_homenick , 2 года назад

@caterina Например f(x) = x^2 если x<0 и 2х+1 если x>0. Это можно сделать следующим образом:

1
 f = @(x) x.^2 .* (x<=0) + (2.*x+1) .* (x>0);

Для проверки можете построить график этой функции

1
2
3
x = -10:0.1:10;
y = f(x);
plot(x, y);

Пользователь

от sylvester , год назад

@caterina 

Кусочная функция может быть задана в Matlab с помощью оператора условия if-else или тернарного оператора ?:.


Пример задания кусочной функции с использованием оператора if-else:

1
2
3
4
5
6
7
8
function y = piecewise(x)
if x < 0
    y = 0;
elseif x >= 0 && x < 1
    y = x^2;
else
    y = 1;
end


В этом примере функция piecewise возвращает 0, если аргумент x меньше нуля, x^2, если x находится в промежутке от 0 до 1, и 1 в остальных случаях.


Пример задания кусочной функции с использованием тернарного оператора:

1
2
function y = piecewise(x)
y = (x < 0) ? 0 : ((x >= 0 && x < 1) ? x^2 : 1);


Этот пример выполняет ту же операцию, что и предыдущий, но использует тернарный оператор вместо оператора if-else.