如何在matlab中多次连接数组?

Ham*_*med 4 arrays matlab concatenation

命令:

>> mat = magic( 4 );
>> out = cat( 3, mat, mat );
Run Code Online (Sandbox Code Playgroud)

沿第三维连接矩阵 'mat' 2 次并生成 4×4×2 数组

如何在不使用循环的情况下“n”次完成这项工作并生成 4×4×n 数组?

我知道通过使用像这样的元胞数组可以做到这一点:

>> out = cat( 3, cellArray{:} );
Run Code Online (Sandbox Code Playgroud)

但如何创建这个元胞数组呢?:

>> cellArray = {mat, mat, ... , mat};  % n time
Run Code Online (Sandbox Code Playgroud)

如何在matlab中连接数组n次?

Heb*_*odo 5

您可以使用repmat

如果你想要一个3维矩阵:

mat = magic(4);
n = 3; % Number of times you want to replicate
out = repmat(mat,[1 1 n]);
Run Code Online (Sandbox Code Playgroud)

out将是一个 4x4xn 双数组。

如果您想要一个元胞数组,您可以执行此操作作为附加步骤:

outCell = mat2cell(out,4,4,ones(1,n));
Run Code Online (Sandbox Code Playgroud)

outCell将是一个 1x1xn 元胞数组。

  • @HamedHamed:如果输出应该是元胞数组,您可以简单地调用“repmat({mat},[1,1,n])”。 (2认同)