Matlab中循环和向量化的比较

给予datuashvili

让我们考虑下面的脉冲函数代码

function y=impulse_function(n);
y=0;
if n==0
    y=1;
end
end

此代码

>> n=-2:2;
>> i=1:length(n);
>> f(i)=impulse_function(n(i));
>> 

返回结果

 f

f =

     0     0     0     0     0

而这段代码

>> n=-2:2;
>> for i=1:length(n);
f(i)=impulse_function(n(i));
end
>> f

f =

     0     0     1     0     0

在两种情况下我都是1 2 3 4 5,有什么不同?

隆斯特

您的函数未定义为处理矢量输入。

修改您的实现函数,如下所示:

function y=impulse_function(n)
    [a b]=size(n);
    y=zeros(a,b);
    y(n==0)=1;
end

在您定义impulse_function时,会将整个数组与零进行比较,并且返回值仅是一个数字而不是向量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章