【发布时间】:2016-03-15 18:48:11
【问题描述】:
我正在使用 numpy 将一些 matlab 代码移植到 python,并且我有以下 matlab 命令:
[xgrid,ygrid]=meshgrid(linspace(-0.5,0.5, GridSize-1), ...
linspace(-0.5,0.5, GridSize-1));
现在,这在 2D 中很好,但我想将其扩展到 n 维。因此,根据输入数据,GridSize 可以是 2、3 或 4 维向量。因此,在 2D 中,这将是:
[xgrid, grid] = np.meshgrid(np.linspace(-0.5,0.5, GridSize[0]),
np.linspace(-0.5,0.5, GridSize[1]));
但是,我之前不知道输入的维度,所以是否可以重写这个表达式,使其可以生成任意维度的网格?
【问题讨论】:
-
您是否尝试过添加一个昏迷和另一个 linspace?
-
是的,但关键是在“编译时”尺寸是未知的......它必须根据输入 GridSize 向量的尺寸生成。
-
您的 MATLAB 代码对两个维度使用相同的大小,而您的 numpy 代码则不是。目的是什么?
-
即使 Matlab 代码不使用相同的大小。
-
@Luca 如果他们不知道,放一个 if 语句.....另外,在 matlab 中,任何矩阵都有无限维大小 1,所以你可以只添加单点的 alinspace。跨度>