首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单位矩阵或非单位矩阵

单位矩阵或非单位矩阵
EN

Stack Overflow用户
提问于 2019-09-16 00:20:09
回答 1查看 205关注 0票数 0

所以基本上我想写一个程序,用列表来显示一个矩阵,并打印出这个矩阵是不是一个单位矩阵。

代码语言:javascript
复制
R = int(input('Enter no. of rows:'))
C = int(input('Enter no of columns:'))
print('Enter row wise entries:')
Mat = []
for i in range(R):
    a = []
    for j in range(C):
        a.append(int(input()))
    Mat.append(a)
for i in range(R):
    for j in range(C):
        print(Mat[i][j], end=' ')
    print()
for i in range(R):
    for j in range(C):
        if i != j and Mat[i][j] != 0 or i == j and Mat[i][j] == 1:
            break      
print('Identity Matrix')

我可以打印出矩阵,但不能正确地检查它是否是一个身份。请检查我的代码,告诉我哪里出了问题。

EN

回答 1

Stack Overflow用户

发布于 2019-09-16 02:09:05

你的解决方案看起来真的很接近我!

我唯一想改变的是:

  • 检查if i==j的列数和行数在if语句的第二部分中检查每个元素if i==j

Mati == 1,但对不是单位的矩阵的正确检查应该是Mati != 1

  • 在您进行的检查中添加一个标记以跟踪矩阵是否为单位

代码语言:javascript
复制
R = int(input('Enter no. of rows:'))
C = int(input('Enter no of columns:'))
print('Enter row wise entries:')
Mat = []
for i in range(R):
    a = []
    for j in range(C):
        a.append(int(input()))
    Mat.append(a)
for i in range(R):
    for j in range(C):
        print(Mat[i][j], end=' ')
    print()
isIdentity = True
if C == R: # change 1
    for i in range(R):
        for j in range(C):
            if (i != j and Mat[i][j] != 0) or (i == j and Mat[i][j] != 1): # change 2
                isIdentity = False # change 3
                break
else:
    isIdentity = False
if isIdentity:   
    print('Identity Matrix')
else:
    print('Not Identity Matrix')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57945986

复制
相关文章

相似问题

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