改成如下可以运行,我也不理解。但你还要注意用field的element作为参数时,传值不传引用,你要让swapRow返回交换行之后的矩阵。
def swapRow(A, i, maxRow):
for k in ti.static(range(3)):
temp = A[i,k]
A[i,k] = A[maxRow,k]
A[maxRow,k] = temp
def mat_read(A: ti.template(), i, j):
ret = A[0,0]
for ii in ti.static(range(3)):
for jj in ti.static(range(3)):
if i == ii and j == jj:
ret = A[ii,jj]
return ret
def mat_write(A: ti.template(), i, j, val):
for ii in ti.static(range(3)):
for jj in ti.static(range(3)):
if i == ii and j == jj:
A[ii,jj] = val
def swapRow(A, i, maxRow):
for k in ti.static(range(3)):
temp = A[i,k]
A[i,k] = mat_read(A,maxRow,k)
mat_write(A,maxRow,k, temp)
试试看用这两个函数?
2 Likes
可以了,谢谢你