上面的程序用for循环也好for delay in range(0,6,0.1):
for pre in range(0,1,0.01)
#use delay pre
#body
就可以了,python已空格缩进作为间隔
本帖最后由 wqsong 于 2010-12-1 10:02 编辑
回复 16 # smtmobly 的帖子
似乎,range函数不能用-1到1之间的浮点数作步长。。。
好像是step是整形,-1到1之间的浮点数都向0去整。。。步长就按0算了。。。 回复 17 # wqsong 的帖子
哦!numpy里用xrange可以!不过你可以在整数的基础上乘以一个数。
for item in range(1,1000):
delay=0.001*item 本帖最后由 leeking30 于 2010-12-8 18:31 编辑
回复 12 # wqsong 的帖子
开始跑不通,看提示说indent错误 好像PYTHON没有smart indent功能(可能我自己没找见)就手动调整了下
果然能跑动了, 非常感谢
自动储存出来的文件 第一个为thre0delay0.mat (OK)但是第二个是thre0delay1.0.mat 也就是说0.001*1000=1.0 不是 integer 虽然后期拿matlab也能搞定 总觉得有点不好看
再次感谢wqsong的帮助 还有smtmobly的回复 回复 19 # leeking30 的帖子
客气了。。。
至于不是integer这问题也可以解决的,把浮点数强制转化为整型。
filename='thre'+str(int(10*thre))+'delay'+str(int(1000*delay))+'.mat'
这样就可以了。
拿你说那例子说:
>>> print filename
thre0delay1.mat
>>> thre = 0.2
>>> delay = 0.002
>>> filename='thre'+str(int(10*thre))+'delay'+str(int(1000*delay))+'.mat'
>>> print filename
thre2delay2.mat
这样的话就不会出现thre2.0delay2.0.mat这样的形式了。。。
{:{24}:}
回复 12 # wqsong 的帖子
最后要补充一点 原代码有点小错误
thre=0
delay=0#这句要移动到下面
while thre<=6:
delay=0 #delay 要写在这里
while delay<=0.1:
#do something
filename='thre'+str(10*thre)+'delay'+str(1000*delay)+'.mat'
SaveRefCapture('C:\\dspace\\beam_torsion_bending\\01072010\\TestThresholdBeam \
ingDamping\\ExBend800\\ExTorsion300\\'+filename)
delay+=0.001
thre+=0.1
通过做试验,学习了一些python的基础知识 有收获
请问哪里有DSPace下载?如果你那有此软件,能否给我传一份?我在学校学习。我QQ是258902093. 回复 22 # luoyue 的帖子
dSPACE 是硬件 不是软件
我这里说的是 dspace的 控制软件 叫controldesk 是买dspace时候附带的
页:
1
[2]