@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); |
@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.