编写并测试矩阵转置函数
时间: 2024-05-08 15:20:53 浏览: 76
以下是一个简单的矩阵转置函数的 Python 代码:
```python
def transpose(matrix):
rows = len(matrix)
cols = len(matrix[0])
transposed_matrix = []
for j in range(cols):
transposed_row = []
for i in range(rows):
transposed_row.append(matrix[i][j])
transposed_matrix.append(transposed_row)
return transposed_matrix
```
该函数接受一个二维矩阵作为参数,并返回它的转置矩阵。
我们可以使用以下代码测试该函数:
```python
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed_matrix = transpose(matrix)
for row in transposed_matrix:
print(row)
```
这将输出:
```
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
```
这是原矩阵的转置矩阵。
相关问题
C++编写并测试33矩阵转置函数,使用动态内存分配生成动态数组
下面是一个C++编写并测试33矩阵转置函数的例子:
```cpp
#include <iostream>
using namespace std;
int main() {
int **matrix = new int*[3]; //动态分配3行
for(int i = 0; i < 3; i++) {
matrix[i] = new int[3]; //动态分配3列
for(int j = 0; j < 3; j++) {
matrix[i][j] = i * 3 + j + 1; //为矩阵赋初值
}
}
//输出原矩阵
cout << "原矩阵:" << endl;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
//转置矩阵
int **transpose = new int*[3]; //动态分配3行
for(int i = 0; i < 3; i++) {
transpose[i] = new int[3]; //动态分配3列
for(int j = 0; j < 3; j++) {
transpose[i][j] = matrix[j][i]; //转置矩阵
}
}
//输出转置矩阵
cout << "转置矩阵:" << endl;
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
cout << transpose[i][j] << " ";
}
cout << endl;
}
//释放动态内存
for(int i = 0; i < 3; i++) {
delete[] matrix[i];
delete[] transpose[i];
}
delete[] matrix;
delete[] transpose;
return 0;
}
```
这个程序中,首先通过 `new` 运算符动态分配了一个3行3列的矩阵 `matrix`。然后,通过两重循环为矩阵赋初值,并输出原矩阵。接着,再动态分配一个3行3列的矩阵 `transpose`,并通过两重循环将 `matrix` 转置到 `transpose` 中,最后输出转置矩阵。最后,通过两重循环释放动态内存。
注意,动态分配的内存必须在不需要使用时及时释放,否则会造成内存泄漏。
编写并测试3x3矩阵转置函数,使用数组保存3x3矩阵。
要编写一个3x3矩阵转置函数,首先需要定义一个3x3的数组来保存矩阵。可以使用二维数组来表示,如下所示:
int matrix[3][3];
接下来,需要编写一个函数来实现矩阵的转置。可以使用两个嵌套的循环来遍历矩阵,将每一个元素的行列互换。
void transposeMatrix(int matrix[3][3]){
int temp;
for(int i=0; i<3; i++){
for(int j=i+1; j<3; j++){
temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
在主函数中,可以定义一个矩阵并初始化,然后调用转置函数进行测试。
int main(){
// 定义一个3x3矩阵并初始化
int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
// 调用转置函数
transposeMatrix(matrix);
// 输出转置后的矩阵
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
运行程序后,将会输出转置后的矩阵:
1 4 7
2 5 8
3 6 9
以上就是一个简单的3x3矩阵转置函数的编写和测试过程。
阅读全文