如何按照给定的规则输入矩阵喵?
while (num<=9)
{
for (int i = num - 1; i > 0 && n > 0; i--)
{
cin >> x;
scan[i][num - i] = x;
n--;
}
num++;
for (int i = num - 1; i > 0 && n > 0; i--)
{
cin >> x;
scan[num - i][i] = x;
n--;
}
num++;
}
如何按要求逆变换
double trans(double i, double j)
{
double res = 0;
for (int u = 0; u <= 7; u++)
for (int v = 0; v <= 7; v++)
if (u == 0 && v == 0)
res += (double)M1[u][v] * cos(0) * cos(0) / 2.0;
else if (u == 0)
res += (double)M1[u][v] * sqrt(0.5) * cos(acos(-1) * (i + 0.5) * double(u) / 8.0) * cos(acos(-1) * (j + 0.5) * v / 8.0);
else if (v == 0)
res += (double)M1[u][v] * sqrt(0.5) * cos(acos(-1) * (i + 0.5) * double(u) / 8.0) * cos(acos(-1) * (j + 0.5) * v / 8.0);
else
res += (double)M1[u][v] * cos(acos(-1) * (i + 0.5) * double(u) / 8) * cos(acos(-1) * (j + 0.5) * double(v) / 8.0);
return (double)res / 4.0;
}
借鉴了这位大佬的DCT函数:
本系列只是记录,会借鉴,望海涵