矩阵统计与变换函数 题目描述:编写一个函数,实现对5×5整型矩阵的统计与变换: 1. 计算矩阵中正数的个数和总和 2. 将矩阵主对角线元素翻倍 3. 找出矩阵中的最大值和最小值
时间: 2024-12-24 20:39:48 浏览: 5
矩阵统计与变换函数通常用于处理二维数据结构,例如5x5的整数矩阵。这样的函数可以分为几个步骤:
1. **统计正数**:遍历矩阵中的每个元素,如果元素值大于0,则计数加一并累加其数值到总和中。
```python
def count_and_sum_positive(matrix):
positive_count = 0
positive_sum = 0
for row in matrix:
for elem in row:
if elem > 0:
positive_count += 1
positive_sum += elem
return positive_count, positive_sum
```
2. **翻倍主对角线**:找到矩阵的主对角线元素(即从左上到右下的对角线),将它们的值都乘以2。
```python
def double_diagonal(matrix):
for i in range(len(matrix)):
matrix[i][i] *= 2 # 对角线元素
return matrix
```
3. **查找最大值和最小值**:同样遍历整个矩阵,分别记录下遇到的最大值和最小值。
```python
def find_max_min(matrix):
max_value = float('-inf')
min_value = float('inf')
for row in matrix:
for elem in row:
if elem > max_value:
max_value = elem
if elem < min_value:
min_value = elem
return max_value, min_value
```
结合这三个部分,完整的函数可以像下面这样设计:
```python
def matrix_stats_transform(matrix):
positive_count, positive_sum = count_and_sum_positive(matrix)
transformed_matrix = double_diagonal(matrix)
max_value, min_value = find_max_min(transformed_matrix)
return positive_count, positive_sum, transformed_matrix, max_value, min_value
# 示例用法
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = matrix_stats_transform(matrix)
print("正数个数:", result[0])
print("正数总和:", result[1])
print("翻倍后的矩阵:", result[2])
print("最大值:", result[3])
print("最小值:", result[4])
```
阅读全文