You need to enable JavaScript to run this app. Python与MATLAB中kron函数使用差异及数组列赋值实现问题
优惠活动
大模型
产品
解决方案
定价
更多

Python与MATLAB中kron函数使用差异及数组列赋值实现问题

MATLAB kron列赋值逻辑Python实现方案

问题根因

MATLAB的克罗内克积函数kron对两个列向量计算时,直接输出列向量结构;而NumPy的kron如果输入是二维数组,会按矩阵克罗内克积规则输出二维数组,这是你得到不同维度结果的核心原因。

实现代码

你只需要把kron的输出拉平为一维数组,就可以直接赋值给grid_val的对应列,示例如下:

import numpy as np

# 提前确认mgrid为(35,1)列向量、pgrid为(1000,1)列向量
# 若输入为一维数组,可先通过.reshape(-1,1)转列向量:
# mgrid = mgrid.reshape(-1, 1)
# pgrid = pgrid.reshape(-1, 1)

grid_val = np.zeros((35000, 2))
# 赋值第一列
grid_val[:, 0] = np.kron(np.ones((35, 1)), pgrid).flatten()
# 赋值第二列
grid_val[:, 1] = np.kron(mgrid, np.ones((1000, 1))).flatten()

补充说明

如果需要显式对齐MATLAB的输出结构,也可以把flatten()替换为reshape(-1, 1),赋值逻辑完全一致,运行结果没有差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:33:01