如何在没有循环的情况下使重复矩阵增加数量

时间:2017-12-04 12:58:13

标签: matlab matrix

我正在尝试制作重复矩阵。并且一个条件是元素随着每个重复步骤而增加。

例如, 使用[a b],我想制作多个数组,例如[a b a+D b+D a+2D b+2D a+3D b+3D][a b a b a+C b+C a+C b+C]。 (CD不变)

由于消除循环是必不可少的,是否有任何特殊功能(如repmat)或技巧来制作这种矩阵?

1 个答案:

答案 0 :(得分:4)

使用repmatreshape的组合,您可以按如下方式实现:

A = [1 2];
n = 5;
D = 10;
B = reshape(repmat(A(:), 1, n) + D*(0:(n-1)), 1, [])

pre 2016b (不允许隐式扩展)

B = reshape(bsxfun(@plus, repmat(A(:), 1, n), D*(0:(n-1))), 1, [])