首页 > 解决方案 > 如何在给定另一个数组的情况下创建 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

标签: matlab

解决方案


您需要继续堆叠它们,例如:B = [B A]在循环内。或者更好的是,使用将它们堆叠在单个函数调用中的函数 repmat()在您的主要行堆叠的情况下:

n = 100; % for 100 reps
B = repmat(A,1,n)

推荐阅读