[英]Difficulty understanding matrix operations in Python
从对随机创建的4×4二进制矩阵的初始猜测开始,编写一个代码片段,该片段在100次迭代中执行以下操作:
打印最终的4×4矩阵和在100次迭代结束时找到的行列式的值。
import numpy as np
MOld = np.random.randint(2, size=[4,4])
for j in range(100): #for loop over 100 iterations
MNew = np.array(MOld) #new matrix equal to old matrix
i,j = np.random.randint(4), np.random.randint(4) #choosing random elements of the matrix.
MNew[i,j] = 1 - MNew[i,j] #do not understand this
if f(MNew) < f(MOld): #if new matrix < old matrix
MOld = MNew #replacing value
print(MOld) #printing original 4x4 matrix
print(f(MOld)) #printing determinant value
我正在努力提高我对这段代码的理解,如果有人可以在#号标签后检查我的评论,我将不胜感激。
特别是我不理解此步骤:
MNew [i,j] = 1-MNew [i,j]
感谢您的任何帮助。
步骤:
如果MNew [i,j]为1,则MNew [i,j]现在为1-1 = 0。
如果MNew [i,j]为0,则Mnew [i,j]现在为1-0 = 1
因此,您看到这是一种从上次迭代中翻转值的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.