private double[] CalcWeist(List <CircleImage> img, List <double> distance) { double[] result = new double[img[0].Circles.Count]; for (int circleId = 0; circleId < result.Length; circleId++) { try { double[] radius = new double[img.Count]; for (int imgId = 0; imgId < radius.Length; imgId++) { radius[imgId] = img[imgId].Circles[circleId].Radius * 5.5; } string output = ""; for (int i = 0; i < radius.Length; i++) { output += radius[i].ToString("F2") + ","; } if (output.Length > 0) { output = output.Substring(0, output.Length - 1); } _log.Debug($"Circle{circleId} radius: {output}"); result[circleId] = Matlab.CalcWeist2(radius, distance.ToArray()); } catch (Exception ex) { result[circleId] = double.NaN; _log.Error($"Failed to calcute weist for {circleId}", ex); } } return(result.ToList().Select(x => x / 10).ToArray()); }