我需要在Matlab中编写单位步进函数:
以下是我试图实现的方法:
function y = u(n)
if n<0
y=0;
else y=1;
end
我测试了它的不同参数值,它返回正确的值,但如果我定义数字数组n = [ - 2,-1,0,1,2]并调用test = u(n)它只返回值1.我应该做什么才能使它返回数组,我的意思是应该为n的每个值评估函数,并将评估结果放在数组中。 提前致谢
答案 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