如何在matlab中连接数组'n'时间?

Posted

技术标签:

【中文标题】如何在matlab中连接数组\'n\'时间?【英文标题】:How to Concatenate arrays 'n' time in matlab?如何在matlab中连接数组'n'时间? 【发布时间】:2012-12-11 12:27:53 【问题描述】:

命令:

>> mat = magic( 4 );
>> out = cat( 3, mat, mat );

将矩阵“mat”沿第三维连接 2 次并生成一个 4×4×2 数组

如何在不使用循环的情况下“n”次生成一个 4×4×n 数组?

我知道这可以通过使用这样的元胞数组来实现:

>> out = cat( 3, cellArray: );

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

>> cellArray = mat, mat, ... , mat;  % n time

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

【问题讨论】:

【参考方案1】:

您可以使用repmat

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

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

out 将是一个 4x4xn 双精度数组。

如果您想要一个元胞数组,您可以将其作为附加步骤:

outCell = mat2cell(out,4,4,ones(1,n));

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

【讨论】:

@HamedHamed:如果输出应该是元胞数组,您可以简单地调用repmat(mat,[1,1,n])

以上是关于如何在matlab中连接数组'n'时间?的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 中的单元格和数组的连接和索引有何不同?

如何连接字符串+ i?

MATLAB Coder:截断/连接元胞数组

在Matlab里面如何实现字符串的拼接

在matlab中连接单元格数组的向量

在不知道输出数组大小的情况下,像 matlab 一样在 python 中连接数组