2014-06-13 12 views
21

Kiedykolwiek muszę dołączyć do wektora, robię to.Jak mogę dołączyć do wektora w Octave?

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

Zastanawiam się, czy istnieją jakieś wbudowane funkcje tego lub bardziej eleganckiego sposobu robienia tego w Octave.

+1

To jest zbudowany w funkcji ... – sivi

Odpowiedz

21

Wbudowane funkcje to cat, vertcat i horzcat, znalezione na stronach 380-381 z Octave documentation (v 3.8). Zasadniczo są one równoważne z tym, co masz.

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 

Innym (znowu odpowiednik) sposobem byłoby korzystać bezpośrednio indeksowania matrycy (patrz strona 132)

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

    6 7 8 
    7 8 9 
1

myślę, że najbardziej efektywne jest użycie tego zbudowany w funkcji, które zostały zamieszczone w pytanie (polegam na innych ekspertach w oktawie nie sprawdziłem go całkowicie, standardem jest to, że operacje macierzy są generalnie szybsze niż iteracyjne, nie wiem jaki wewnętrzny mechanizm pozwala to na włączenie). Ponieważ wektor jest rodzajem Matrice, to rozwiązanie będzie działać na concatinating wektory (dowolnego typu) za:

vector = [vector ; value] 
Powiązane problemy