我想将此代码从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.
为什么会发生这种情况/如何解决?
答案 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太大了,你试图这样做时会耗尽内存。