I need to sum, then find their average to calculate the variance of columns or rows of a matrix. I started writing the function from the column part. I wrote the sum as a for loop, but it just keeps giving -431602080.00. Here's my function:
float variance(float **varianceMatrix, int varianceRow, int varianceColumn, char
varianceSelector)
{
int a, i, b;
float *varianceSum, *varianceAvg, *varianceNew;
int selectedColumn;
printf("%d rows, %d columns, %c is selected.\n", varianceRow, varianceColumn, varianceSelector);
switch(varianceSelector)
{
case 'c':
varianceSum = (float*)malloc(varianceColumn*sizeof(float));
varianceNew = (float*)malloc(varianceColumn*sizeof(float));
varianceAvg = (float*)malloc(varianceColumn*sizeof(float));
for(b = 0; b < varianceColumn; b++)
{
for(a = 0; a < varianceRow; a++)
{
varianceSum[a] += varianceMatrix[a][b];
}
}
printf("Sum array:\n");
for(a = 0; a < varianceColumn; a++)
{
printf("%f\n", varianceSum[a]);
}
for(a = 0; a < varianceColumn; a++)
{
varianceAvg[a] = varianceSum[a] / varianceRow;
}
for(a = 0; a < varianceColumn; a++)
{
printf("%d. rows average value: %d\n", a+1, varianceAvg[a]);
}
}
}