2014-06-13 50 views
21

當我不得不追加到一個載體時,我正在做這件事。如何追加到Octave中的矢量?

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

我想知道是否有任何內置的功能,這個或更多的優雅的方式,這樣做在八度。

+1

這是內置的功能... – sivi

回答

21

內建函數是cat,vertcat和horzcat,可在Octave documentation(v3.8)的第380-381頁找到。它們基本上與你所擁有的相同。

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 
1

我認爲,最有效的就是利用這個建於你曾經參與過的功能這個問題(我依賴於八度的其他專家,我沒有完全檢查它;標準是矩陣運算通常比迭代運算更快,我不知道允許它啓用的內部機制)。 因爲向量是一種矩陣的計算的,這個解決方案將用於concatinating載體(任何類型的)工作過:

vector = [vector ; value] 
相關問題