Azzera filtri
Azzera filtri

sum of a series

3 visualizzazioni (ultimi 30 giorni)
dav
dav il 18 Mar 2013
Hi,
Can someone please help me to write the following code using a summation
for i = 1:1000
v(i) =y(i) - a0- a1*y(i-1)-a2*y(i-2);
end
Thanks.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 19 Mar 2013
a0=1;
a1=2;
a2=1;
y=rand(1,1000) % your data
coeff=[-a2 -a1 1];
for ii = 3:1000
v(ii) =sum(y(ii-2:ii).* coeff)-a0;
end

Più risposte (1)

Youssef  Khmou
Youssef Khmou il 18 Mar 2013
Modificato: Youssef Khmou il 18 Mar 2013
hi, what is Y[nT]? random variable?
N=1000;
a0=2.36;
a1=4.56;
a2=5.57;
y=randn(N,1);
v=zeros(N,1);
v(1:2)=y(1:2); % Optional, take is as initial condition
% Using Loops
for n=3:N
v(n)=y(n)-a0-(a1*y(n-1))-(a2*y(n-2));
end
figure, plot(y), hold on, plot(v,'r'), hold off
% Vectorization
Y1=zeros(size(y));
Y1(2:end)=y(1:end-1);
Y2=zeros(size(y));
Y2(3:end)=y(1:end-2);
V=y-a0-a1*Y1-a2*Y2;
% Comparaison
figure, plot(v), hold , plot(V,'r'), hold off
  5 Commenti
dav
dav il 19 Mar 2013
I figured it out. Thanks for your time.
Youssef  Khmou
Youssef Khmou il 19 Mar 2013
ok

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by