gpt4 book ai didi

c - 转置矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 00:56:03 25 4
gpt4 key购买 nike

我想转置一个矩阵,这是一个非常简单的任务,但它不适合我:

更新

我正在转置第一个矩阵并且将其存储在第二个中他们俩数组指向相同的结构我需要两个数组(目标和源)所以我可以稍后显示它们比较。

struct testing{
int colmat1;
int rowmat1;
float mat[64][64];
};

int testtranspose(testing *test,testing *test2){
int i,j;
test2->colmat1 = test->rowmat1;
test2->rowmat1 = test->colmat1
for(i=0;i<test->rowmat1;i++){
for(j=0;j<test->colmat1;j++){
test2->mat[i][j] = test->mat[i][j];
}
printf("\n");
}
}

我认为这是正确的方法,但显然对于矩阵,例如:

1 2
3 4
5 6
7 8

我明白了:

1 2 0 0
3 4 0 0

问题是什么?

请帮忙,谢谢!

最佳答案

要转置矩阵,您需要更改行和列。所以你需要使用:

targetMatrix[i][j] = sourceMatrix[j][i];

注意 i,j 的顺序是如何改变的,因为一个矩阵的行是另一个矩阵的列。

顺便说一句,您可以编写a->b 而不是(*a).b。这是访问结构指针字段的常规方法。

关于c - 转置矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2799537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com