如何在 Matlab 中多次加入同一个矩阵以制作一个大矩阵?
How to join the same matrix several times to make a big matrix in Matlab?
我有一个 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次。那么有没有其他方法可以得到相同的结果呢?
您尝试过使用 repmat
吗?
B = repmat(A, 1, 50);
repmat
(很好地代表 repeat matrix)采用矩阵并重复多次水平和垂直你想要的。从技术上讲,您可以选择要对矩阵中尽可能多的维度重复多少次。然而,对于我们这里的目的,这是一个具有两个自由度/维度的矩阵,所以我们在这里只考虑水平和垂直。
在您的特定情况下,您希望将此列向量水平重复 50 次,因此第三个参数设置为 50,而您只希望垂直复制一个,因此第二个参数设置为 1。
我有一个 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次。那么有没有其他方法可以得到相同的结果呢?
您尝试过使用 repmat
吗?
B = repmat(A, 1, 50);
repmat
(很好地代表 repeat matrix)采用矩阵并重复多次水平和垂直你想要的。从技术上讲,您可以选择要对矩阵中尽可能多的维度重复多少次。然而,对于我们这里的目的,这是一个具有两个自由度/维度的矩阵,所以我们在这里只考虑水平和垂直。
在您的特定情况下,您希望将此列向量水平重复 50 次,因此第三个参数设置为 50,而您只希望垂直复制一个,因此第二个参数设置为 1。