Appending vector in long for-loop

2 visualizaciones (últimos 30 días)
Jonathan
Jonathan el 8 de Nov. de 2013
Editada: Azzi Abdelmalek el 11 de Nov. de 2013
I have this loop where x = 62012:
while y < x
p1 = percentChange(avgLine(y-9), avgLine(y-8));
p2 = percentChange(avgLine(y-9), avgLine(y-7));
p3 = percentChange(avgLine(y-9), avgLine(y-6));
p4 = percentChange(avgLine(y-9), avgLine(y-5));
p5 = percentChange(avgLine(y-9), avgLine(y-4));
p6 = percentChange(avgLine(y-9), avgLine(y-3));
p7 = percentChange(avgLine(y-9), avgLine(y-2));
p8 = percentChange(avgLine(y-9), avgLine(y-1));
p9 = percentChange(avgLine(y-9), avgLine(y-0));
p10 = percentChange(avgLine(y-9), avgLine(y+1));
During this loop, I want to create a vector: [p1 p2 p3 ... p10] and after every iteration, there would be 10 new elements added to the end of it. Can I do this efficiently without using 'append'?
Thanks in advance

Respuestas (1)

Azzi Abdelmalek
Azzi Abdelmalek el 8 de Nov. de 2013
Editada: Azzi Abdelmalek el 8 de Nov. de 2013
out=zeros(1,62012*10);
n=0;
while y < x
n=n+1;
for k=1:10
out(1,k+(n-1)*10)= percentChange(avgLine(y-9), avgLine(y+k-9));
end
end
  3 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 9 de Nov. de 2013
We don't know how y varies, how your function percentChange works.
Jonathan
Jonathan el 11 de Nov. de 2013
Editada: Azzi Abdelmalek el 11 de Nov. de 2013
function [ x ] = percentChange( startPoint, currentPoint )
format long
x = ((currentPoint - startPoint)/abs(startPoint))*100.00;
if x==0
x = 0.00000000001;
end
After each loop, y = y+1;

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by