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

如何基于给定的dimension和order生成对应的乘数矩阵

生成指定维度和阶数的全组合矩阵通用方案

你需要的本质是0到order(含两端)的整数在dimension维下的全笛卡尔积,结果每一行对应一个dim维的取值组合,整体形状满足( (order + 1) ** dimension, dimension )。

原生Python实现(无第三方依赖)

直接用标准库itertools.product即可实现,代码简单易读:

import itertools

def generate_comb_matrix(dimension: int, order: int) -> list:
    value_range = range(order + 1)
    return [list(item) for item in itertools.product(value_range, repeat=dimension)]

测试验证:传入dimension=2, order=3调用函数,返回结果长度为(3+1)**2=16,每个子列表长度为2,和示例要求的结构完全一致。

Numpy实现(适合数值计算场景)

如果需要生成numpy数组格式的结果,或者参数较大追求运算效率,可以用如下实现:

import numpy as np

def generate_comb_matrix_np(dimension: int, order: int) -> np.ndarray:
    value_range = np.arange(order + 1)
    grids = np.meshgrid(*[value_range for _ in range(dimension)], indexing='ij')
    return np.stack(grids, axis=-1).reshape(-1, dimension)

测试验证:传入dimension=2, order=3调用函数,返回的数组形状为(16, 2),符合要求。

两种方案都可以自由适配任意正整数的dimension和order参数,直接调用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:45:07