Moving check of dimensionality for continuous variables in mixed CMI calculator common to the main setObservations() method

This commit is contained in:
jlizier 2018-06-19 23:57:41 +10:00
parent ca909dc60f
commit 4170339426
1 changed files with 6 additions and 3 deletions

View File

@ -155,6 +155,12 @@ public abstract class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSou
if (conditionedObservations[0].length == 0) {
throw new Exception("Computing MI with a null set of conditioned data");
}
if (continuousObservations[0].length != dimensionsContinuous) {
throw new Exception("The continuous observations do not have the expected number of variables (" + dimensionsContinuous + ")");
}
if (conditionedObservations[0].length != dimensionsConditional) {
throw new Exception("The conditional observations do not have the expected number of variables (" + dimensionsConditional + ")");
}
continuousDataX = continuousObservations;
discreteData = discreteObservations;
conditionedDataZ = conditionedObservations;
@ -167,9 +173,6 @@ public abstract class ConditionalMutualInfoCalculatorMultiVariateWithDiscreteSou
public void setObservations(double[] continuousObservations,
int[] discreteObservations, double[] conditionedObservations)
throws Exception {
if ((dimensionsContinuous != 1) || (dimensionsConditional != 1)) {
throw new Exception("setObservations(double[], int[], double[]) can only be called when both the continuous observations and conditional observations were initialised to have dimension 1");
}
double[][] contObservationsMatrix = new double[continuousObservations.length][1];
MatrixUtils.copyIntoColumn(contObservationsMatrix, 0, continuousObservations);
double[][] condObservationsMatrix = new double[conditionedObservations.length][1];