Mercurial > hg > octave-nkf
changeset 14118:ebe2e6b2ba52 stable
Start adding vectorization examples
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Tue, 27 Dec 2011 19:06:37 -0500 |
parents | acdc4520286a |
children | 94e2a76f1e5a |
files | doc/interpreter/vectorize.txi |
diffstat | 1 files changed, 32 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/interpreter/vectorize.txi +++ b/doc/interpreter/vectorize.txi @@ -621,5 +621,35 @@ @node Examples @section Examples -Here goes a gallery of vectorization puzzles with solutions culled from -the help mailing list and the machine learning class... +The following are examples of vectorization questions asked by actual +users of Octave and their solutions. + +@c FIXME: We need a lot more examples here. + +@itemize @bullet +@item +For a vector @code{A}, the following loop + +@example +@group +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)]; +end +@end group +@end example + +@noindent +can be turned into the following one-liner: + +@example +B = [diff(A)(:), 0.5*(A(1:end-1)+A(2:end))(:)] +@end example + +Note the usage of colon indexing to flatten an intermediate result into +a column vector. This is a common vectorization trick. + +@end itemize