首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以理解Python中的矩阵操作

难以理解Python中的矩阵操作
EN

Stack Overflow用户
提问于 2019-03-10 19:40:54
回答 1查看 39关注 0票数 0

从随机创建的4×4二进制矩阵的初始猜测开始,编写一个代码片段,执行以下100次迭代:

  1. 选择矩阵的一个随机元素,创建一个新的矩阵,它等于一个随机选择的数字翻转的旧矩阵(从0到1,反之亦然);
  2. 如果新矩阵的目标值比旧矩阵小,则用新矩阵代替,否则,保持在当前矩阵。

打印最后的4×4矩阵和在100次迭代结束时找到的行列式的值。

代码语言:javascript
复制
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

我正在努力提高我对这段代码的理解,如果有人能在标签#之后查看我的评论,我将不胜感激。

我特别不明白这一步:

MNewi,j=1- MNewi,j

谢谢你提前提供帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-10 19:47:20

步骤:

如果MNewi,j是1,那么MNewi,j现在是1-1= 0.

如果MNewi,j是0,那么Mnewi,j现在是1-0=1。

因此,您可以看到,这是一种从上一次迭代中翻转值的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55091635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档