-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmembership-functions.R
More file actions
29 lines (26 loc) · 929 Bytes
/
membership-functions.R
File metadata and controls
29 lines (26 loc) · 929 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
triangular.membership.function = function(base.set, set.values){
set.values = sort(set.values)
names(set.values) = c("min.value", "mean.value", "max.value")
u = c();
for (i in 1:length(base.set)){
x = base.set[i];
if (x < set.values["min.value"] || x > set.values["max.value"]){
u[i] = 0;
}
else{
if (x >= set.values["min.value"] && x < set.values["mean.value"]){
u[i] = (x - set.values["min.value"])/(set.values["mean.value"] - set.values["min.value"]);
}
else{
if(x >= set.values["mean.value"] && x <= set.values["max.value"]){
u[i] = (set.values["max.value"] - x)/(set.values["max.value"] - set.values["mean.value"]);
}
}
}
}
u;
}
alfa_corte = function(fuzzy.set, alfa){
c("min.value" = (fuzzy.set["mean.value"] - fuzzy.set["min.value"])*alfa + fuzzy.set["min.value"],
"max.value" = (fuzzy.set["mean.value"] - fuzzy.set["max.value"])*alfa + fuzzy.set["max.value"])
}