
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 函数用于测试代码,创建一个简单的矩阵并输出其转置结果。发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月26日 13时40分51秒
关于作者

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