public MeanRating[] getMeanRatings() {
		MeanRating[] result = new MeanRating[itemNames.length];
		BigDecimal[] intermediateResult = new BigDecimal[itemNames.length];
		initArray(intermediateResult);
		int[] ratingCounts = new int[itemNames.length];

		for (int i = 0; i < itemNames.length; i++) {
			for (BigDecimal[] row : ratings) {
				if (row[i] != null) {
					intermediateResult[i] = intermediateResult[i].add(row[i]);
					ratingCounts[i]++;
				}
			}

			result[i] = new MeanRating(itemNames[i], new BigDecimal(intermediateResult[i].toPlainString()));
			result[i].setMeanData(result[i].getMeanData().divide(new BigDecimal(ratingCounts[i]), new MathContext(3)));
		}

		return result;
	}