Clear Filters
Clear Filters

Appending vector in long for-loop

2 views (last 30 days)
Jonathan
Jonathan on 8 Nov 2013
Edited: Azzi Abdelmalek on 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

Answers (1)

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

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!