编写一个主程序,生成一个菜单界面,当输入1时,调用矩阵赋值函数,为5*5的矩 阵赋初值;当输入2时,调用矩阵转置函数,对该矩阵进行转置操作;当输入3时,将该矩阵 上三角所有元素值变成0;当输入4时,求该矩阵对角线所有元素的平均值;当输入4时,将 该矩阵下对角线元素变成1,当输入0时,退出程序
时间: 2023-06-03 22:04:24 浏览: 87
好的,我可以帮您回答这个问题。
以下是该程序的代码:
```python
import numpy as np
# 定义矩阵赋值函数
def matrix_init():
matrix = np.zeros((5, 5))
for i in range(5):
for j in range(5):
matrix[i][j] = float(input("请输入第{}行第{}列的数:".format(i+1, j+1)))
return matrix
# 定义矩阵转置函数
def matrix_transpose(matrix):
matrix_T = matrix.T
return matrix_T
# 定义将上三角所有元素值变为0的函数
def matrix_upper_tri_zero(matrix):
matrix_upper = np.triu(matrix)
matrix_zero = matrix - matrix_upper
return matrix_zero
# 定义求对角线元素平均值的函数
def matrix_diagonal_average(matrix):
matrix_diag = np.diag(matrix)
diagonal_average = np.mean(matrix_diag)
return diagonal_average
# 定义将下对角线所有元素变为1的函数
def matrix_lower_tri_one(matrix):
matrix_lower = np.tril(matrix)
matrix_one = matrix - matrix_lower + np.eye(5, dtype=int)
return matrix_one
# 定义主程序
def main():
while True:
print("功能菜单:")
print("1. 矩阵赋初值")
print("2. 矩阵转置")
print("3. 上三角所有元素值变为0")
print("4. 对角线所有元素平均值")
print("5. 下对角线所有元素变为1")
print("0. 退出程序")
option = input("请输入您要进行的操作:")
if option == "1":
matrix = matrix_init()
print(matrix)
elif option == "2":
matrix_T = matrix_transpose(matrix)
print(matrix_T)
elif option == "3":
matrix_zero = matrix_upper_tri_zero(matrix)
print(matrix_zero)
elif option == "4":
diagonal_average = matrix_diagonal_average(matrix)
print(diagonal_average)
elif option == "5":
matrix_one = matrix_lower_tri_one(matrix)
print(matrix_one)
elif option == "0":
print("程序已退出。")
break
else:
print("输入有误,请重新输入。")
if __name__ == "__main__":
main()
```
当输入1时,程序会调用矩阵赋值函数,为5*5的矩阵赋初值;当输入2时,程序会调用矩阵转置函数,对该矩阵进行转置操作;当输入3时,程序会将该矩阵上三角所有元素值变成0;当输入4时,程序会求该矩阵对角线所有元素的平均值;当输入5时,程序会将该矩阵下对角线元素变成1;当输入0时,程序会退出。
阅读全文