Appending vector in long for-loop

2 Ansichten (letzte 30 Tage)
Jonathan
Jonathan am 8 Nov. 2013
Bearbeitet: Azzi Abdelmalek am 11 Nov. 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

Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 8 Nov. 2013
Bearbeitet: Azzi Abdelmalek am 8 Nov. 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 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 9 Nov. 2013
We don't know how y varies, how your function percentChange works.
Jonathan
Jonathan am 11 Nov. 2013
Bearbeitet: Azzi Abdelmalek am 11 Nov. 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;

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by