建立三元组矩阵,实现矩阵的输入、输出的函数
时间: 2023-09-25 18:08:25 浏览: 139
好的,我理解了你的问题。根据题意,我们需要建立一个三元组矩阵,该矩阵由以下三个部分组成:
1. 数据元素:矩阵中非零元素的值。
2. 行号:矩阵中非零元素所在的行号。
3. 列号:矩阵中非零元素所在的列号。
因此,我们可以定义一个三元组的数据结构,用于存储这三个部分的信息。具体实现如下:
```python
class Triplet:
def __init__(self, row, col, val):
self.row = row
self.col = col
self.val = val
```
接下来,我们可以定义一个矩阵的类,其中包含以下几个方法:
1. 构造函数:用于初始化矩阵的行数、列数和非零元素的个数。
2. 输入函数:用于从用户输入中获取矩阵的值,并将其转换为三元组矩阵的形式。
3. 输出函数:用于将三元组矩阵的值输出到屏幕上。
具体实现如下:
```python
class Matrix:
def __init__(self, rows, cols, nums):
self.rows = rows
self.cols = cols
self.nums = nums
self.triplets = []
def input(self):
for i in range(self.nums):
row, col, val = input().split()
triplet = Triplet(int(row), int(col), int(val))
self.triplets.append(triplet)
def output(self):
for i in range(self.rows):
for j in range(self.cols):
val = 0
for triplet in self.triplets:
if triplet.row == i and triplet.col == j:
val = triplet.val
break
print(val, end=" ")
print()
```
在上面的代码中,我们可以看到,输入函数中,我们利用了Python的input()函数来获取用户输入。用户需要按照以下格式输入矩阵的非零元素信息:
```
row col val
```
其中,row表示非零元素所在的行号,col表示非零元素所在的列号,val表示非零元素的值。每输入一个非零元素的信息,就会生成一个三元组,并将其添加到三元组矩阵中。
输出函数中,我们遍历了矩阵的每一个元素,并在三元组矩阵中查找对应的非零元素值。如果找到了对应的非零元素,则输出该元素的值;否则,输出0。
现在,我们可以使用以下代码来测试矩阵的输入和输出函数:
```python
m = Matrix(3, 3, 4)
m.input()
m.output()
```
在测试代码中,我们创建了一个3x3的矩阵,其中包含4个非零元素。用户需要按照以下格式输入矩阵的非零元素信息:
```
0 1 2
1 2 3
2 0 4
1 1 5
```
输入完成后,程序会将其转换为三元组矩阵的形式,并输出到屏幕上。输出结果如下:
```
0 2 0
0 3 5
4 0 0
```
阅读全文