在Matlab中将一个变量推入向量

12

如何在Matlab中将变量推入向量?

类似于这样:

A = [5 2 3];
push(A, 7);
% A = [5 2 3 7]

谢谢。

2个回答

28

我找到了答案。

使用这个:

A = [A, 7];

或者这个:

A(end + 1) = 7;

1
"A=[A,4];" 是最常用的解决方案,因为它可以轻松地推广到更复杂的情况。然而,如果您的向量被转置,第一种解决方案也可以使用,因此两种方法都有其优点。 - Dennis Jaheruddin
@DennisJaheruddin:你能举个第一种方法会失败的例子吗? - naught101
1
作为第一种方法的缺点,我只提到了第二种更容易泛化。假设您想将A附加到A的右侧,则可以简单地执行:A=[A,A],而对于第一种方法,您需要执行:A(:,end + 1:end + size(A,2))= A - Dennis Jaheruddin
1
@naught101 当向量是结构体向量且为空时,第一个方法会失败;例如:my_struct.a = 10; all_structs = []; all_structs(end+1) = my_struct; - Bill Cheatham

0

如果你想要垂直堆叠它,你可以使用

A = [A; 7]

但是为了执行此操作,A应该与下一个参数具有相同的维度。 例如,如果

A=[1,2
   3,4]

你可以将长度为2的向量堆叠在A中,如下所示:

A = [A;5,6]

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