如何在Octave中向向量添加元素?

41

每当我需要向向量中添加元素时,我都会这样操作。

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

我想知道在Octave中是否有任何内置函数或更加优雅的方法来完成这个任务。


3
这是内置函数... - sivi
2个回答

36

内置函数为cat、vertcat和horzcat,在Octave文档的第380-381页找到(版本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

8

我认为最有效的方法是使用您在问题中发布的这个内置函数(我依赖其他Octave专家,没有完全检查它。通常矩阵操作比迭代操作更快,我还不知道使此功能启用的内部机制)。 因为向量是矩阵类型,所以此解决方案也适用于连接任何类型的向量:

vector = [vector ; value]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接