Matlab中的函数实现

时间:2015-04-12 23:51:49

标签: matlab function

我需要在Matlab中编写单位步进函数: enter image description here

以下是我试图实现的方法:

function y = u(n)
    if n<0
        y=0;
    else y=1;
end

我测试了它的不同参数值,它返回正确的值,但如果我定义数字数组n = [ - 2,-1,0,1,2]并调用test = u(n)它只返回值1.我应该做什么才能使它返回数组,我的意思是应该为n的每个值评估函数,并将评估结果放在数组中。 提前致谢

2 个答案:

答案 0 :(得分:7)

您可以在一行代码中执行此操作:

n>=0

如果n的对应元素严格大于零,则上述语句将产生一个逻辑数组,其元素等于1。如果需要函数句柄,请使用匿名函数:

u = @(n) n>=0

答案 1 :(得分:0)

以下是我解决它的方法:

     function y = u(n)
     matrix_dimensions=size(n);
     length_of_vector=matrix_dimensions(2);
     position=0;
     for index=1:length_of_vector
     position=position+1;
     if n(1,index)<0
     y(position)=0;
     else y(position)=1;
     end
     end
     end