转置矩阵也相对简单,即:将原矩阵的行变为列,列变为行:
来看一下代码的实现:
//转置矩阵
int matrix_transposition(s_Matrix *result, s_Matrix *src)
{
if (result == null)
{
return -1;
}
if (result->v == null)
{
return -1;
}
if (src == null)
{
return -1;
}
if (src->v == null)
{
return -1;
}
if (src->m <= 0 || src->n <= 0)
{
return -1;
}
//行数等于原列数
result->m = src->n;
//列数等于原行数
result->n = src->m;
//循环所有元素
for (int i = 0; i < src->m; i++)
{
for (int j = 0; j < src->n; j++)
{
//列号变列号,列号变行号
result->v[j * result->n + i] = src->v[i * src->n + j];
}
}
return 0;
}
本教程所使用的源代码完全开放、免费。你可以自由的使用和修改本教程中的所有源代码:
git@github.com:magicworldos/matrix.git
https://github.com/magicworldos/matrix.git
Copyright © 2015-2023 问渠网 辽ICP备15013245号