2014-01-15 2 views
0

Одной из задач моего назначения является добавление соответствующей функции шума следующего уравнения:ошибка MATLAB Loop при добавлении функции шума

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 - всего лишь одно число.

Любая помощь приветствуется !! Благодаря!!

ответ

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); 
+0

спасибо! Вы абсолютно правы. – user3192340

Смежные вопросы