Ogni volta che devo aggiungere a un vettore lo sto facendo.Come posso aggiungere a un vettore in Octave?
A = [2 3 4]
A = [A; 3 4 5]
Mi chiedevo se ci sono delle funzioni incorporato per questo o più eleganti modi per farlo in ottava.
Ogni volta che devo aggiungere a un vettore lo sto facendo.Come posso aggiungere a un vettore in Octave?
A = [2 3 4]
A = [A; 3 4 5]
Mi chiedevo se ci sono delle funzioni incorporato per questo o più eleganti modi per farlo in ottava.
Le funzioni integrate sono cat, vertcat e horzcat, disponibili alle pagine 380-381 di Octave documentation (v 3.8). Sono essenzialmente equivalenti a quello che hai però.
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
Un altro modo (di nuovo equivalente) sarebbe utilizzare direttamente matrice di indicizzazione (vedi pagina 132)
octave:9> C = [6 7 8];
octave:10> C(end+1,:) = [7 8 9]
C =
6 7 8
7 8 9
Penso che la più efficace è quello di utilizzare questo costruito in funzione che avete pubblicato in la domanda (mi affido ad altri esperti in ottava non l'ho verificato completamente, lo standard è che le operazioni con le matrici sono generalmente più veloci di quelle iterative, non so quale meccanismo interno permetta a questo di essere abilitato ancora). Poiché un vettore è un tipo di matrice, questa soluzione funziona per concatinating vettori (di qualsiasi tipo) troppo:
vector = [vector ; value]
Questa è la funzione built ... – sivi