我正在尝试使用numpy.mgrid创建两个网格数组,但我想要一种方法来插入变量作为步数。
如果没有可变数量的步骤,numpy.mgrid将按预期使用此代码:
x, y = np.mgrid[0:1:3j, 0:2:5j]
但是,我想要的是这样的,因为我无法在代码行中明确说明我的步骤编号以生成网格数组(由于我的脚本中的其他进程,值可能会发生变化):
num_x_steps = 3
num_y_steps = 5
x, y = np.mgrid[0:1:(num_x_steps)j, 0:2:(num_y_steps)j] #Try convert to complex
有没有办法做到这一点,返回的结果等同于第一种方法?
我尝试使用括号和不带括号运行我的3行代码并尝试了其他一些修改,但似乎没有任何效果。
注意:我尝试阅读this主题,但我不确定该主题涉及的内容是否适用于此问题;我不太明白被问到什么或者如何回答。 (另外,我尝试从答案中运行代码行,它返回了一个MemoryError。)如果说的主题确实解决了我的问题,有人可以更好地解释它,以及它如何适用于我的问题?
答案 0 :(得分:5)
小故障是Range("A1").Select 'Your query worksheet
With Selection.QueryTable
.CommandText = queryText
.Refresh BackgroundQuery:=False
End With
括号后面没有转换为复数。
j
将值乘以In [41]:(1)j
File "<ipython-input-41-874f75f848c4>", line 1
(1)j
^
SyntaxError: invalid syntax
会有效,而这些行会使1j
等同于您的第一行:
x, y
答案 1 :(得分:3)
我认为您要找的是将步数转换为复数。
num_x_steps = 3
x_steps = complex(str(num_x_steps) + "j")
num_y_steps = 5
y_steps = complex(str(num_y_steps) + "j")
x, y = np.mgrid[0:1:x_steps, 0:2:y_steps]