我们真的很感激任何帮助,因为我们正在疯狂地用我们的程序使它更快地使用C语言。你知道吗
获得的值不变,总是0,0,0,0
以下是在Linux中运行的代码:
from scipy import weave
pasa = 0
coorX = -11.8
coorY = -7.9
INC=0.01296
##def weave_update():
code="""
int i,j, pasa;
double coorX, coorY,INC;
for (i=0; i < 1296;i++){
yminf = coorY + INC*(i);
ymaxf = yminf + INC;
for (j=0; j < 1936;j++){
xminc = coorX + INC*(j);
xmaxc = xminc + INC;
pasa = 1;
break;
}
if (pasa == 1){
break;
}
}
"""
weave.inline(code,['yminf','xminc','xmaxc','ymaxf'],type_converters=weave.converters.blitz,compiler='gcc')
print yminf,xminc,xmaxc,ymaxf
看起来有两个问题。首先,需要传入C代码需要从python访问的所有变量。因此,您的
inline
呼叫需要:其次,需要从weave代码中返回所需的值,因为在C中修改它们不会影响它们在Python中的值。有一种方法:
通过这些修改,以下文件似乎可以正常工作:
相关问题 更多 >
编程相关推荐