编写函数,分别实现如下功能: 一。从键盘输入一个int类型的n阶方阵(n<10)存入二维数组中。 二。求转置矩阵并输出。 三。判断矩阵是否是对称矩阵。 四。找出矩阵中的最大值和最小值,并输出到屏幕。 五。对矩阵每一行进行升序排序后存入另个二维数组中,然后输出到屏幕。 六。求矩阵的行列式 (采用递归或非递归方式)。
时间: 2023-06-24 19:05:15 浏览: 120
下面是实现上述功能的代码:
```python
# 从键盘输入一个int类型的n阶方阵(n<10)存入二维数组中
def input_matrix(n):
matrix = []
for i in range(n):
row = list(map(int, input().split()))
matrix.append(row)
return matrix
# 求转置矩阵并输出
def transpose_matrix(matrix):
rows = len(matrix)
cols = len(matrix[0])
transpose = [[matrix[j][i] for j in range(rows)] for i in range(cols)]
return transpose
# 判断矩阵是否是对称矩阵
def is_symmetric_matrix(matrix):
rows = len(matrix)
cols = len(matrix[0])
if rows != cols:
return False
for i in range(rows):
for j in range(i+1, cols):
if matrix[i][j] != matrix[j][i]:
return False
return True
# 找出矩阵中的最大值和最小值,并输出到屏幕
def find_max_min(matrix):
max_val = float('-inf')
min_val = float('inf')
for row in matrix:
for val in row:
if val > max_val:
max_val = val
if val < min_val:
min_val = val
print(f"Max value: {max_val}")
print(f"Min value: {min_val}")
# 对矩阵每一行进行升序排序后存入另个二维数组中,然后输出到屏幕
def sort_rows(matrix):
sorted_matrix = []
for row in matrix:
sorted_row = sorted(row)
sorted_matrix.append(sorted_row)
return sorted_matrix
# 求矩阵的行列式 (采用递归方式)
def determinant(matrix):
size = len(matrix)
if size == 1:
return matrix[0][0]
elif size == 2:
return matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0]
else:
det = 0
for i in range(size):
minor = []
for j in range(1, size):
row = []
for k in range(size):
if k != i:
row.append(matrix[j][k])
minor.append(row)
sign = (-1)**i
det += sign*matrix[0][i]*determinant(minor)
return det
# 从键盘输入一个int类型的n阶方阵(n<10)存入二维数组中
n = int(input("Enter n: "))
print("Enter the matrix:")
matrix = input_matrix(n)
# 求转置矩阵并输出
print("Transpose matrix:")
transpose = transpose_matrix(matrix)
for row in transpose:
print(row)
# 判断矩阵是否是对称矩阵
if is_symmetric_matrix(matrix):
print("Matrix is symmetric")
else:
print("Matrix is not symmetric")
# 找出矩阵中的最大值和最小值,并输出到屏幕
find_max_min(matrix)
# 对矩阵每一行进行升序排序后存入另个二维数组中,然后输出到屏幕
print("Sorted matrix:")
sorted_matrix = sort_rows(matrix)
for row in sorted_matrix:
print(row)
# 求矩阵的行列式 (采用递归方式)
det = determinant(matrix)
print(f"Determinant: {det}")
```
注意:如果要求逆矩阵,可以使用 `numpy` 库中的 `linalg.inv()` 函数。
阅读全文