% Using MatLab with Vectors
% Jeffrey N. Denenberg
% December 4, 1998
% updated February 14, 2012

fprintf('\nVectorizing Algorithms\n')
pause
fprintf('\n    Memory Allocation\n')
fprintf('\n        Example: Create a 5000 point vector\n')
fprintf('\n                 Using a loop and dynamic allocation\n')
fprintf('\n            clear;\n')
fprintf('\n            V=1;\n')
fprintf('\n            for k=2:5000\n')
fprintf('\n                V=[V k];\n')
fprintf('\n                end;\n')
fprintf('\n            pause\n')
V=1;
pause
startTime=clock;
for k=2:5000
V=[V k];
end
fprintf('\nDONE!\n')
elapsedTime=clock-startTime;
elapsedTime
pause
fprintf('\n            V\n')
V
pause
fprintf('\n                 preallocate memory\n')
fprintf('\n            clear;\n')
fprintf('\n            V=zeros(1,5000);\n')
fprintf('\n            for k=1:5000\n')
fprintf('\n                V(k)=k;\n')
fprintf('\n                end\n')
fprintf('\n            pause\n')
clear;
pause
V=zeros(1,5000);
startTime=clock;
for k=1:5000
    V(k)=k;
    end
fprintf('\nDONE!\n')
fprintf('\n            V\n')
elapsedTime=clock-startTime;
elapsedTime
pause
V
pause
fprintf('\n        Example: Square a 5000 point vector\n')
fprintf('\n                 Using a loop\n')
fprintf('\n            for k=1:5000\n')
fprintf('\n                W(k)=V(k)^2;\n')
fprintf('\n                end\n')
fprintf('\n            pause\n')
pause
startTime=clock;startTime=clock;
for k=1:5000
    W(k)=V(k)^2;
    end
fprintf('\nDONE!\n')
elapsedTime=clock-startTime;
elapsedTime
pause
fprintf('\n            W\n')
W
pause
fprintf('\n                 Using a Vectorized Form\n')
fprintf('\n            W=V.^2;\n')
fprintf('\n            end\n')
fprintf('\n            pause\n')
pause
startTime=clock;
W=V.^2;
fprintf('\nDONE!\n')
elapsedTime=clock-startTime;
elapsedTime
pause
fprintf('\n            W\n')
W
pause





