我有这样的功能:
f(x) = { x if 0 < x < n
{ n-x if n < x < 2*n
如何在MATLAB中输入此功能?
答案 0 :(得分:6)
最好的方法是将它放在子函数或嵌套函数中,或者放在一个单独的m文件中:
function y = f(x)
n = 4; %// Or whatever your N is
if x <= 0 || x >= 2*n
y = 0;
elseif x < n
y = x;
else
y = n-x;
end
end
或者更一般地,当x
是向量/矩阵时,
function y = f(x)
y = x;
y(x >= n) = n-x(x >= n);
y(x <= 0 | x >= 2*n) = 0;
end
或者,您当然可以将n
作为参数传递:
function y = f(x, n)
...
end
或者,您可以使用此匿名函数:
f = @(x) (x>0 & x<n).*x + (x>=n & x<=2*n).*(n-x);
再次,可选地,传递n
:
f = @(x,n) ...