Objective-C实现矩阵转置(附完整源码)
发布日期:2025-04-26 23:48:50 浏览次数:4 分类:精选文章

本文共 1812 字,大约阅读时间需要 6 分钟。

Objective-C实现矩阵转置

矩阵转置是将矩阵的行和列互换的一种操作。例如,将一个 m x n 的矩阵转置后得到一个 n x m 的矩阵。以下是一个完整的 Objective-C 程序示例,实现了矩阵的创建、转置以及输出功能。

完整源码

#import

矩阵结构定义

typedef struct {  
int rows; // 矩阵的行数
int cols; // 矩阵的列数
int **matrix; // 矩阵数据存储
} Matrix;

矩阵初始化函数

Matrix createMatrix(int rows, int cols) {  
Matrix matrix;
matrix.rows = rows;
matrix.cols = cols;
matrix.matrix = (int **)malloc(rows * cols);
return matrix;
}

矩阵转置函数

Matrix transposeMatrix(Matrix matrix) {  
int i, j, k;
Matrix transposed;
transposed.rows = matrix.cols;
transposed.cols = matrix.rows;
transposed.matrix = (int **)malloc(transposed.rows * transposed.cols);
for (i = 0; i < transposed.rows; i++) {
for (j = 0; j < transposed.cols; j++) {
transposed.matrix[i * transposed.cols + j] = matrix.matrix[j * matrix.cols + i];
}
}
return transposed;
}

测试示例

int main(int argc, const char *argv) {  
// 创建一个 2x3 的矩阵
Matrix matrix = createMatrix(2, 3);
// 初始化矩阵数据
matrix.matrix[0][0] = 1; matrix.matrix[0][1] = 2; matrix.matrix[0][2] = 3;
matrix.matrix[1][0] = 4; matrix.matrix[1][1] = 5; matrix.matrix[1][2] = 6;
// 调用转置函数
Matrix transposed = transposeMatrix(matrix);
// 输出原矩阵
printf("原矩阵:\n");
for (int i = 0; i < matrix.rows; i++) {
for (int j = 0; j < matrix.cols; j++) {
printf("%d ", matrix.matrix[i][j]);
}
printf("\n");
}
// 输出转置后的矩阵
printf("转置后的矩阵:\n");
for (int i = 0; i < transposed.rows; i++) {
for (int j = 0; j < transposed.cols; j++) {
printf("%d ", transposed.matrix[i][j]);
}
printf("\n");
}
return 0;
}

代码解释

该程序首先定义了一个矩阵结构,包含矩阵的行数、列数以及矩阵数据的存储地址。接着定义了矩阵的初始化函数 createMatrix 和矩阵转置函数 transposeMatrix。createMatrix 函数用于创建指定大小的矩阵,并分配内存空间。transposeMatrix 函数则负责对矩阵进行转置操作。最后,main 函数用于测试代码,创建一个简单的矩阵并输出其转置结果。
上一篇:Objective-C实现短作业优先调度算法(附完整源码)
下一篇:Objective-C实现矩阵螺旋打印算法(附完整源码)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月26日 13时40分51秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章