Halo,我是编程和python的新手。上次我发布了一个关于循环的问题我已经理解了这个概念并开发了几个算法。现在,我试图将这个概念应用于矩阵和列表。这是我试图迭代的代码:
import numpy as np
R=np.matrix([[1,2,1,3,4,2],[2,1,2,1,2,3],[1,1,2,3,1,2],[1,2,3,1,1,1],[2,1,2,4,1,2],
[1,3,1,1,2,3]])# this 6 by 6 matrix
loads=np.transpose(np.matrix([0,0,0,0,0,0])) # this is starting load
tk=[2,2,2,2]
stress=[]
kk=True
while (kk):
for i in range(len(tk)):
loads+=np.transpose(np.matrix([1,0,0,0,0,0]))
mid=R*loads
stress_k=mid[0:3]+tk[i]*mid[3:6]
stress.append(stress_k)
stressk=(np.bmat(stress))
s=stressk[0:1,i:i+1]
if s>20:
kk=False
break
print(stressk)
print(loads)
print(i)
print(s)
问题在于,当我尝试打印终止加载打印时,循环一直持续到4的范围长度,并反复重复循环。重复向量是[[12]]无限。更多的打印(负载)无限增加而不影响 stress_k value。我的意图是当负载达到某个值时停止循环,它会使stressk矩阵[i,j]的元素更大20,在这种情况下我选择了第一行并循环列[0:1,I:I + 1]。我尝试了很多其他方法,但找不到错误。如果有人可以修改代码或告诉我是否存在任何其他方法,请提前请求杰克