Forum: Mikrocontroller und Digitale Elektronik kniffliges fuzzy-problem


von Thomas Zethner (Gast)


Lesenswert?

hi

ich arbeite an einem fuzzy-regler auf nem ATmega8. bis jetzt läufts
recht gut, nur hab ein problem bei der komposition:
ich bekomm von der inferenz zwei arrays mit max. 4 werten (singleton
und grad der aktivierung).

für die, die mit fuzzy-logic nicht so vertraut sind: ich bekomme als
ausgabe quasi ein zweidimensionales koordinatensystem mit x[4] und
y[4], wobei x wertdiskret ist (7).

das problem ist, dass, wenn zwei oder mehr werte in x[] gleich sind,
das größte zugehörige y[] ermittelt werden muss.

bsp:

x[20,10,20,30];
y[ 5, 1, 4, 3];
-> 10|1;20|5;30|3

x[10,10,10];
y[ 2, 4, 8];
-> 10|8

ich hab in der schule schon anregungen in richtung bubblesort bekommen,
jedoch weis ich nicht so recht, wie ich dann das sortierte x[] mit dem
y[] möglichst sparsam auswerten kann

ich hoffe ich hab mich verständlich ausgedrückt
thxia

von Εrnst B. (ernst)


Lesenswert?

Bei nur vier Werten ist Bubblesort absoluter Overkill...
1
int maximum_y=0;
2
for (i=0; i<4; ++i) {
3
  if (x[i]==10 /* oder dein wert halt */ && y[i]>maximum_Y) {
4
     maximum_y=y[i];
5
   }
6
}
...

/Ernst

von Thomas Zethner (Gast)


Lesenswert?

bei so ner einfachen lösung wirds fast schon peinlich...
aber da nichtmal zwei dipl.ing. in der schule draufgekommen sind :D

also vielen dank!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.