添加噪声函数时的MATLAB循环错误

添加噪声函数时的MATLAB循环错误,matlab,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',

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

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中的元素数和我必须 都一样

Error in Try1 (line 58)
    x(i) = A*(1+a1*E(i))*sin(w*(1+a2*E(i))*t+y)+ a3*E(i);
我不理解这个错误,因为E只是一个数字


谢谢你的帮助!!谢谢

你是正确的,
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);