Comment puis-je ajouter à un vecteur en Octave?

Quand je dois ajouter à un vecteur, je le fais.

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

Je me demandais s'il y avait des fonctions intégrées pour cela ou des façons plus élégantes de le faire en Octave.

23
demandé sur Mateusz Piotrowski 2014-06-13 07:39:32

2 réponses

Les fonctions intégrées sont cat, vertcat et horzcat, trouvées aux pages 380-381 de la documentation Octave (V 3.8). Ils sont essentiellement équivalents à ce que vous avez bien.

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

Une autre manière (encore équivalente) serait d'utiliser directement l'indexation matricielle (voir page 132)

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

   6   7   8
   7   8   9
23
répondu user3288829 2018-01-26 18:33:04

Je pense que le plus efficace est d'utiliser cette fonction intégrée que vous avez posté dans la question (je compte sur d'autres experts en octave Je ne l'ai pas vérifié complètement; la norme est que les opérations matricielles sont généralement plus rapides que les opérations itératives, Je ne sais pas quel est le mécanisme interne qui permet à cela Parce qu'un vecteur est un type de matrice, cette solution fonctionnera aussi pour concaténer des vecteurs (de tout type):

vector = [vector ; value]
1
répondu sivi 2017-01-16 10:06:28