错误的matlab功能,我无法识别

时间:2012-03-26 11:15:45

标签: function matlab signals

我是matlab的新手并编写了一个功能代码,旨在帮助绘制半波整流正弦函数。但它没有给我我期望的结果。

function x = rectifiedSineWave(t )
if sin(t) < 0
    x = 0;
else
    x = sin(t);
end

1 个答案:

答案 0 :(得分:4)

如果t只有一个元素,那么原始代码就可以了。

如果t是矢量,您可能需要

function x = rectifiedSineWave(t)
  x = sin(t);
  x(x<0)=0;

或,更简单(感谢Serg

function x = rectifiedSineWave(t)
  x = max(0, sin(t));

这样,sin(t)为负的元素将设置为零。

您的问题是if sin(t)<0只要矢量t的任何元素为负,就会触发,并将x设置为零。