matlab - 如何在给定另一个数组的情况下创建 Matlab 数组
问题描述
让我们假设一个简单的数组A
A = [1 2 3 4 5 6 7 8];
我想创建一个B
包含A
多达 2 次的数组:
B = [A A]
那么B
, 将是维度(1,2*length(A))
我怎么能做同样的事情,但N
有时(例如使用 for 循环或类似的东西)?
for i = 1:N
B = ???
end
以便
B = [A A A.....A]
我尝试repmat
先将B
设为矩阵,然后将reshape
. 但是reshape
不像我预期的那样工作,而不是给出:
1 2 3 4 5 6 7 8 1 2 3 4
5 6 7 8
它给了:
1 1 2 2 3 3 4 4 5 5 6 6
7 7 8 8
解决方案
您需要继续堆叠它们,例如:B = [B A]
在循环内。或者更好的是,使用将它们堆叠在单个函数调用中的函数。 repmat()
在您的主要行堆叠的情况下:
n = 100; % for 100 reps
B = repmat(A,1,n)