2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-06-27 13:33:13 +00:00
This commit is contained in:
2022-10-30 18:43:45 +03:00
parent 584cd458de
commit e83f51f952
5 changed files with 46 additions and 18 deletions

View File

@ -10,7 +10,6 @@ namespace Esiur.Analysis.Fuzzy
CenterOfGravity,
FirstMaxima,
LastMaxima,
Bisector,
MeanOfMaxima,
}
public class MamdaniDefuzzifier
@ -21,9 +20,20 @@ namespace Esiur.Analysis.Fuzzy
var union = sets.FuzzyUnion();
var output = union.ToDiscrete(from, to, step);
var max = output.Maximas;
return max[0].Key;
if (method == MamdaniDefuzzifierMethod.CenterOfGravity)
return output.Centroid(from, to);
else if (method == MamdaniDefuzzifierMethod.FirstMaxima)
return output.Maximas.First().Key;
else if (method == MamdaniDefuzzifierMethod.LastMaxima)
return output.Maximas.Last().Key;
else if (method == MamdaniDefuzzifierMethod.MeanOfMaxima)
{
var max = output.Maximas;
return max.First().Key + ((max.Last().Key - max.First().Key) / 2);
}
else
throw new Exception("Unknown method");
}
}