我有这样的功能:
f(x) = { x if 0 < x < n
{ n-x if n < x < 2*n
如何在 MATLAB 中输入这个函数?
最好的方法是把它放在一个子函数或嵌套函数中,或者放在一个单独的 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
或者,您当然可以将 then
作为参数传递:
function y = f(x, n)
...
end
或者,您可以使用此匿名函数:
f = @(x) (x>0 & x<n).*x + (x>=n & x<=2*n).*(n-x);
再次,可选地,传递n
:
f = @(x,n) ...