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

如何基于N×N子矩阵生成10N×10N块矩阵且不使用for循环

矩阵块重复无循环实现方案

你之前使用kron未达到预期效果,本质是参数顺序写反了,调整参数顺序即可直接通过kron实现需求,无需额外编写for循环。

核心逻辑

你需要的效果是10×10网格排列的原矩阵副本,属于块级重复操作:

  • 若写为kron(原矩阵A, 10×10全1矩阵):会将A的每个元素放大为10×10的同值块,也就是你遇到的「仅放大原始矩阵」的问题
  • 若写为kron(10×10全1矩阵, 原矩阵A):会将全1矩阵的每个元素替换为完整的A矩阵,正好生成10N×10N的目标矩阵

各环境实现代码

MATLAB

% A为N×N的原始矩阵
result = kron(ones(10,10), A);

Python(Numpy)

import numpy as np

# A为N×N的原始矩阵
result = np.kron(np.ones((10, 10), dtype=A.dtype), A)

如果不想用克罗内克积,也可以用tile广播实现,逻辑更直观:

N = A.shape[0]
result = np.tile(A[np.newaxis, np.newaxis, :, :], (10, 10, 1, 1)).reshape(10*N, 10*N)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:45:04