如何在Matlab中多次连接相同的矩阵来制作一个大矩阵?

时间:2015-10-27 16:20:15

标签: matlab math matrix matlab-guide

我有一个4x1矩阵,

A= [1;2;3;4]   

我想B使其大小为4x50。列中的所有元素必须包含相同的A元素。例如,

B= [1 1 1 1.... 1 1; 2 2 2 2.... 2 2; 3 3 3 3.... 3 3; 4 4 4 4.... 4 4]

在这种情况下,第1列的A的所有元素在B的第一列中以相同的方式存在,对于B的第二列也是如此,依此类推

有没有办法从A形成这样的B?我正在尝试连接如下:

B= horzcat(A,A,...);

但在这种情况下,我必须写A次,共50次。那么还有其他方法可以获得相同的结果吗?

1 个答案:

答案 0 :(得分:4)

您是否尝试过使用repmat

B = repmat(A, 1, 50);

repmat(很好地代表 rep mat rix)取一个矩阵并在水平和垂直方向上重复多次你想要的。从技术上讲,您可以选择尽可能多的重复次数,就像您的矩阵中一样。然而,对于我们这里的目的,这是一个具有两个自由度/维度的矩阵,所以我们这里只考虑水平和垂直。

在您的特定情况下,您希望水平重复此列向量50次,因此第三个参数设置为50,而您只需要垂直一个副本,因此第二个参数设置为1.