У меня есть эта функция
int dctTransform(int matrix[][ndct])
{
int i, j, k, l;
float dct[mdct][ndct];
float ci, cj, dct1, sum;
for (i = 0; i < mdct; i++) {
for (j = 0; j < ndct; j++) {
if (i == 0)
ci = 1 / sqrt(mdct);
else
ci = sqrt(2) / sqrt(mdct);
if (j == 0)
cj = 1 / sqrt(ndct);
else
cj = sqrt(2) / sqrt(ndct);
sum = 0;
for (k = 0; k < mdct; k++) {
for (l = 0; l < ndct; l++) {
dct1 = matrix[k][l] *
cos((2 * k + 1) * i * pipi / (2 * mdct)) *
cos((2 * l + 1) * j * pipi / (2 * ndct));
sum = sum + dct1;
}
}
dct[i][j] = ci * cj * sum;
}
}
return dct;
}
И я хочу в основном сделать что-то подобное
matrixZ = dctTransform(matrixZ);
У меня ошибка «возвращаемое значение не соответствует» в «return dct», и я не вижу, что здесь не так, как я могу это улучшить.
MatrixZ [8] [8] имеет тип int, mdct & ndct = 8.