小编Lla*_*maD的帖子

FORTRAN 95,数组必须具有恒定的形状误差

我是Fortran95的绝对初学者,所以我为这个问题的简单性道歉.我希望能够用整数来定义数组的维度,但是我得到了错误

'(1)处的模块或主程序数组'arrayx'必须具有恒定的形状'

并且'变量'y'不能出现在(1)'的表达式中(x的相同错误).根本不可能用变量来定义维度,或者我只是遗漏了一些明显的东西.

program arrayForm
    implicit none
    integer, save :: x=40, y=2
    real, dimension(x,y) :: arrayX
end program arrayForm
Run Code Online (Sandbox Code Playgroud)

arrays fortran

5
推荐指数
1
解决办法
4048
查看次数

使用 matplotlib 滑块更新等高线图级别

我正在尝试使用滑块更改 matplotlib 填充等值线图上的颜色级别值。即轮廓f(x,y,z,np.linspace(a,b,n)),其中滑块将控制a和b,并在移动滑块时更改绘图颜色级别。以下代码采用列格式数据将其转换为contourf所需的形式,然后实现滑块。这是我尝试过的:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

data=np.genfromtxt('file.dat',skip_header=1)
len=np.sqrt(data[:,0].size)
x=np.reshape(data[:,0],(len,len))       
y=np.reshape(data[:,1],(len,len))
z=np.reshape(data[:,3],(len,len))

l=plt.contourf(x,y,z,np.linspace(0,100,255))

axmax = plt.axes([0.25, 0.1, 0.65, 0.03])  #slider location and size
axmin  = plt.axes([0.25, 0.15, 0.65, 0.03])
smax = Slider(axmax, 'Max',0, 100, 50)      #slider properties
smin = Slider(axmin, 'Min', 0, 100, 0)

def update(val):
    l.levels(np.linspace(smin.val,smax.val,255))#changing levels of plot
    fig.canvas.draw_idle()                      #line that throws error
smax.on_changed(update)
smin.on_changed(update)

plt.show()
Run Code Online (Sandbox Code Playgroud)

当滑块移动时,会引发大量 matplotlib 错误,相关错误为“TypeError:'numpy.ndarray' object is not callable”,由该行抛出

fig.canvas.draw_idle()
Run Code Online (Sandbox Code Playgroud)

python user-interface widget matplotlib

5
推荐指数
1
解决办法
3521
查看次数

TypeError:'int'对象不可调用python 2.7.5

我得到TypeError:执行以下代码时,'int'对象在python 2.7.5中不可调用:

range=5
res=0.1
hklmax = int(range/res)
x=0
for h in range(-hklmax,hklmax):
    x+=h 
Run Code Online (Sandbox Code Playgroud)

如果我只是将h的范围直接放在而不是作为变量,我就不会得到错误.我想这是非常明显的事情,但我是python的绝对初学者并且不理解错误.

python python-2.7

1
推荐指数
1
解决办法
502
查看次数