2012-03-26 134 views
1

我是matlab新手,为了帮助绘制半波整流正弦函数,编写函数代码。但它并没有给我所期望的结果。我无法识别的matlab函数中的错误

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

't'是矢量吗? – 2012-03-26 11:16:55

回答

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为零。

+0

谢谢,这解决了我的问题。 – Shnkc 2012-03-26 11:20:03

+4

x = max(0,sin(t)); – Serg 2012-03-26 11:41:57