How can I append to a vector in Octave?

When ever I have to append to a vector I am doing this.

A = [2 3 4]
A = [A; 3 4 5]

I was wondering if there are any inbuilt functions for this or more elegant ways of doing this in Octave.

Answers


The builtin functions are cat, vertcat, and horzcat, found on pages 380-381 of the Octave documentation (v 3.8). They are essentially equivalent to what you have though.

octave:5> A = [2 3 4];
octave:6> A = [A; 3 4 5]
A =

   2   3   4
   3   4   5

octave:7> B = [4 5 6];
octave:8> B = vertcat(B,[5 6 7])
B =

   4   5   6
   5   6   7

Another (again equivalent) way would be to directly use matrix indexing (see page 132)

octave:9> C = [6 7 8];
octave:10> C(end+1,:) = [7 8 9]
C =

   6   7   8
   7   8   9

I think that the most efficient is to use this built in function that you have posted in the question(I'm relying on other experts in octave i did not check it completely; The standard is that matrix operations are generally faster than iterative ones, I don't know what the inner mechanism that allows this to be enabled yet). Because a vector is a type of matrice, this solution will work for concatinating vectors (of any type) too:

vector = [vector ; value]

Need Your Help

HTML5 Canvas: Zooming

javascript canvas

Is there any easy way how to zoom in and back out in canvas (JavaScript)? Basically I have a 400x400px canvas and I'd like to be able to zoom in with 'mousedown' (2x) and go back with 'mouseup'.

Get DBContext from ObjectContext

entity-framework dbcontext objectcontext

I'm using the latest versions of ASP.NET MVC, SQL Server, and Entity Framework. I am not using code first.