将matlab代码转换为python时出错

时间:2015-04-30 02:23:33

标签: python matlab

我想将此代码从matlab转换为python,但它不能正确生成列表。

这是Matlab中的代码:

[X,Y] = meshgrid(0:0.7142:(size(Z,2)-1)*0.7142, 0:0.7142:(size(Z,1)-1)*0.7142);

这是我在Python中编写的代码:

a = np.mgrid[0:0.7142:(len(A)-1)*0.7142]
b = np.mgrid[0:0.7142:(len(A)-1)*0.7142]
x, y = np.meshgrid(a,b)

这将返回一个只包含一个元素的列表,该列表为0.此处列表A的大小为1292352.
为什么会发生这种情况/如何解决?

1 个答案:

答案 0 :(得分:0)

在Python中,切片的步骤是最后一个数字:

a = np.mgrid[0:(len(A)-1)*0.7142:0.7142]
b = np.mgrid[0:(len(A)-1)*0.7142:0.7142]
x, y = np.meshgrid(a,b)

您可以在没有切片的情况下执行此操作,看起来您不需要b,因为它与a相同:

a = np.arange(len(A)-1)*0.7142
x, y = np.meshgrid(a, a)

话虽这么说,你的名单A太大了,你试图这样做时会耗尽内存。