Matlab - 通过多次合并相同的原始矢量来构建矩阵

Sim*_*mon 8 matlab tiling rows matrix repeat

是否有matlab功能允许我进行以下操作?

x = [1 2 2 3];

然后基于x我想构建矩阵m = [1 2 2 3; 1 2 2 3; 1 2 2 3; 1 2 2 3]

Amr*_*mro 12

您正在寻找REPMAT功能:

x = [1 2 2 3];
m = repmat(x,4,1);
Run Code Online (Sandbox Code Playgroud)

您还可以使用索引来重复行:

m = x(ones(4,1),:);
Run Code Online (Sandbox Code Playgroud)

甚至是外部产品:

m = ones(4,1)*x;
Run Code Online (Sandbox Code Playgroud)

并使用BSXFUN:

m = bsxfun(@times, x, ones(4,1))
Run Code Online (Sandbox Code Playgroud)

  • 使用BSXFUN解决方案:`m = bsxfun(@times,x,(1:3)')` (2认同)