So, yeah...its that error. Given the code, I don't know what I'm missing or not doing to make it work:
RegionQuery(allPointsDbscan, p.ClusterPoint, epsilon, deltaX, deltaY, out neighborPts);
if (neighborPts != null)
{
if (neighborPts.Length < minPts)
p.ClusterId = (int)ClusterIds.Noise;
else
{
clusterId++;
ExpandCluster(allPointsDbscan, p, neighborPts, clusterId, epsilon, minPts, deltaX, deltaX);
}
}
private void RegionQuery(DbscanPoint[] allPoints, DatasetItem point, double epsilon, double delta_X, double delta_Y, out DbscanPoint[] neighborPts)
{
if (delta_X < 0.1499 && delta_Y < 0.0899)
{
neighborPts = allPoints.Where(x => _metricFunc(point, x.ClusterPoint) <= epsilon).ToArray();
}
else
neighborPts = null;
}
I don't understand why its throwing me that exception, because I check to see if neighborPts
is NULL
or not before I do anything with it; but it appears that I can't even do that. Why is this?