Подтвердить что ты не робот

Как добавить к вектору в Octave?

Когда я когда-либо добавляю к вектору, я это делаю.

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

Мне было интересно, есть ли встроенные функции для этого или более элегантных способов сделать это в Octave.

4b9b3361

Ответ 1

Встроенными функциями являются cat, vertcat и horzcat, найденные на страницах 380-381 Документация Octave (v 3.8). Они по существу эквивалентны тому, что у вас есть.

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

Другим (опять-таки эквивалентным) способом было бы прямое использование индексации матрицы (см. стр. 132)

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

   6   7   8
   7   8   9

Ответ 2

Я думаю, что наиболее эффективным является использование этой встроенной функции, которую вы разместили в вопросе (я полагаюсь на других экспертов в октаве, я не проверял их полностью). Стандарт заключается в том, что операции с матрицами обычно быстрее, чем Итеративные, я не знаю, что внутренний механизм, который позволяет это быть включен еще). Поскольку вектор является типом матрицы, это решение будет работать и для конкатенсирующих векторов (любого типа):

vector = [vector ; value]