Please help me vectorizing the following code

n=2:nt;
sum1(n)=f(t(n),alpha)+(var).*bj(n).*u(1);
k=1:n-1;var_bj=(bj(k+1)-bj(k)).*(var);
for n=2:nt
sum2=0;
for k=1:n-1
sum2=sum2+var_bj.*u(n-k);
end
sumout2(n)=sum2;
u(n)=(sum1(n)-sumout2(n))/(var-beta);
end

1 Kommentar

Tell us more about the variables you have, for example, what are their sizes? What is your code trying to do?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 14 Mär. 2017

0 Stimmen

For a vectorization, move the index vector from the for loop into the command. For the innermost loop:
sum2 = 0;
for k = 1:n-1
sum2 = sum2 + var_bj .* u(n-k);
end
becomes (I guess that var_bj is a scalar):
sum2 = sum(u(n - (1:n-1))) * var_bj;
This can be simplified:
sum2 = sum(u(1:n)) * var_bj;

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 14 Mär. 2017

Beantwortet:

Jan
am 14 Mär. 2017

Community Treasure Hunt

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

Start Hunting!

Translated by