添加噪声功能时MATLAB循环错误

时间:2014-01-15 00:24:56

标签: matlab

我的任务之一是将适当的噪声函数添加到以下等式中:

x = A*(1+a1*E)*sin(w*(1+a2*E)*t+y)+ a3*E

然后我们必须绘制噪声函数与时间以及添加噪声的原始函数。我问过教授,-1和1之间的随机数发生器是否足够,他已同意了。到目前为止,我有以下代码:

t  = 0:0.1:6.5;
A  = 2;
a1 = 2;
a2 = 4;
a3 = 3;
w  = 1;
y  = 2;

for i=1:length(t)
    E(i)  = random('unif', -1, 1, 1, 1);
    x(i) = A*(1+a1*E(i))*sin(w*(1+a2*E(i))*t+y)+ a3*E(i);
    i=i+1;
end
plot(t,E)
figure
stem(t,x)

我一直收到以下错误在作业A(I)= B中,B和I中的元素数必须 是一样的。

Error in Try1 (line 58)
    x(i) = A*(1+a1*E(i))*sin(w*(1+a2*E(i))*t+y)+ a3*E(i);

我不明白错误,因为E只是一个数字。

任何帮助表示赞赏!!谢谢!

1 个答案:

答案 0 :(得分:2)

您确认E只是一个数字,但您需要乘以t,而不仅仅是一个数字 - 它就是一个数组。我想你的意思是乘以t(i)

                              here------v
x(i) = A*(1+a1*E(i))*sin(w*(1+a2*E(i))*t(i)+y)+ a3*E(i);