[問題] 矩陣轉置結果卻不如預期
遇到的問題: (題意請描述清楚)
小弟我在寫到A轉成A的轉置矩陣時遇到一些問題
就轉置的結果跟我預期的不一樣
希望得到的正確結果:
我的預期是
TofA[j][i]=A[i][j];
那麼TofA[i][j]應該就是TofA原來的矩陣
程式跑出來的錯誤結果:
如果寫TofA[j][i]等於A[i][j]這很正常沒錯
寫成TofA[i][j]
我的TofA跑出來的結果右上都變成0
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev C++, Windows XP SP3
有問題的code: (請善用置底文標色功能)
#include <stdio.h>
#include <stdlib.h>
#define a 0.7071067811865476
#define b 0.4903926402016152
#define c 0.46193976625564337
#define d 0.4157348061512726
#define e 0.27778511650980114
#define f 0.19134171618254492
#define g 0.09754516100806417
int main(void)
{
double A[8][8]={{a,a,a,a,a,a,a,a},
{b,d,e,g,-g,-e,-d,-b},
{c,f,-f,-c,-c,-f,f,c},
{d,-g,-b,-e,e,b,g,-d},
{a,-a,-a,a,a,-a,-a,a},
{e,-b,g,d,-d,-g,b,-e},
{f,-c,c,-f,-f,c,-c,f},
{g,-e,d,-b,b,-d,e,-g}};
double picture[8][8]={{200,202,189,188,189,175,175,175},
{200,203,198,188,189,182,178,175},
{203,200,200,195,200,187,185,175},
{200,200,200,200,197,187,187,187},
{200,205,200,200,195,188,187,175},
{200,200,200,200,200,190,187,175},
{205,200,199,200,191,187,187,175},
{210,200,200,200,188,185,187,186}};
double TofA[8][8]={0};
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
TofA[j][i]=A[i][j];
printf("%f ",TofA[i][j]);
}
printf("\n");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.119.57.10
→
10/31 21:02, , 1F
10/31 21:02, 1F
→
10/31 21:04, , 2F
10/31 21:04, 2F
推
10/31 21:06, , 3F
10/31 21:06, 3F
→
10/31 21:07, , 4F
10/31 21:07, 4F
→
10/31 21:11, , 5F
10/31 21:11, 5F