每当我需要向向量中添加元素时,我都会这样操作。
A = [2 3 4]
A = [A; 3 4 5]
我想知道在Octave中是否有任何内置函数或更加优雅的方法来完成这个任务。
内置函数为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
我认为最有效的方法是使用您在问题中发布的这个内置函数(我依赖其他Octave专家,没有完全检查它。通常矩阵操作比迭代操作更快,我还不知道使此功能启用的内部机制)。 因为向量是矩阵类型,所以此解决方案也适用于连接任何类型的向量:
vector = [vector ; value]