octave: Examples
19.7 Examples
=============
The following are examples of vectorization questions asked by actual
users of Octave and their solutions.
• For a vector ‘A’, the following loop
n = length (A);
B = zeros (n, 2);
for i = 1:length (A)
## this will be two columns, the first is the difference and
## the second the mean of the two elements used for the diff.
B(i,:) = [A(i+1)-A(i), (A(i+1) + A(i))/2];
endfor
can be turned into the following one-liner:
B = [diff(A)(:), 0.5*(A(1:end-1)+A(2:end))(:)]
Note the usage of colon indexing to flatten an intermediate result
into a column vector. This is a common vectorization trick.