MATLAB:为什么我自己写的这个函数,即使输入值为一个向量,输出也只有一个值?

M文件:

function u=y(n)
m=0;
u=0;
while m<=n;
m=m+1;
u = u+x(m)*h(n-m);
end

function x1=x(n)
if n>=0 & n<=127;
x1=1;
else
x1=n-n;
end

function x2=h(n)
if n>=0 & n<=63;
x2=1;
else
x2=0;
end
例如输入:
x=1:10;
y(x)
只得一个结果:2

你的那种写法m<=n,相当于m要小于n中的每一个元素。
可以改成(仅供参考)
function u=y(n)
count=size(n);
for i=1:count(2)
m=0;
u(i)=0;
while m<=n(i)
m=m+1;
u(i)=u(i)+2;
end
end
温馨提示:答案为网友推荐,仅供参考
相似回答