web-dev-qa-db-ja.com

Octaveでベクターに追加するにはどうすればよいですか?

ベクトルに追加する必要があるときはいつでも、これを実行しています。

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

Octaveでこれを行うための組み込みの機能、またはこれを行うよりエレガントな方法があるかどうか疑問に思いました。

28
Aditya

組み込み関数はcat、vertcat、およびhorzcatです。これらは、 Octave documentation (v 3.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

もう1つの(再び同等の)方法は、マトリックスインデックスを直接使用することです(132ページを参照)

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

   6   7   8
   7   8   9
26
user3288829

最も効率的なのは、あなたが質問に投稿したこの組み込み関数を使用することだと思います(オクターブの他の専門家に頼っていますが、私はそれを完全にチェックしませんでした。標準は、行列演算が一般的に反復演算よりも速いことです、これを有効にする内部メカニズムはまだわかりません)。ベクトルは行列の一種であるため、この解決策は(任意の型の)ベクトルを連結する場合にも機能します。

vector = [vector ; value]
3
sivi