You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何将4×3矩阵每行重复n次生成指定3D矩阵

实现矩阵行重复并生成指定结构3D矩阵

已知4×3矩阵:

A = [0.5991 0.2336 0.0323;
     0.3799 0.8422 0.5569;
     0.8399 0.2050 0.6213;
     0.1740 0.2895 0.0185];

需要将每一行重复n次(示例n=2),生成第三维度为4的3D矩阵,其中每个第三维度切片对应原矩阵一行的重复结果。以下是两种实现方法:

方法一:向量化操作(高效)

利用repelem实现行重复,结合reshape和permute调整维度顺序,适合处理大规模矩阵:

n = 2;
% 对每行重复n次,得到(4*n)×3的矩阵
A_repeated = repelem(A, n, 1);
% 重组维度并调整顺序,得到n×3×4的目标3D矩阵
A_new = permute(reshape(A_repeated, n, 4, 3), [1 3 2]);

方法二:循环实现(直观)

通过循环逐个处理原矩阵的每一行,逻辑清晰易理解:

n = 2;
% 预分配3D矩阵空间
A_new = zeros(n, 3, 4);

for i = 1:size(A, 1)
    % 将第i行重复n次,赋值给第三维度的第i个切片
    A_new(:,:,i) = repmat(A(i,:), n, 1);
end

验证结果:执行后A_new(:,:,1)会输出原矩阵第一行重复2次的结果,其余切片依次对应原矩阵后续行的重复结果,完全符合需求。

内容的提问来源于stack exchange,提问作者learning statistics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:57:55