1

我有这样的功能:

f(x) = {  x     if 0 < x < n
       {  n-x   if n < x < 2*n

如何在 MATLAB 中输入这个函数?

4

1 回答 1

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

或者,您当然可以将 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) ... 
于 2013-11-04T12:52:44.497 回答