Examples (GNU Octave (version 5.1.90))

Previous: Miscellaneous Techniques, Up: Vectorization and Faster Code Execution [Contents][Index]

### 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.