INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Problem mit Array-Muster-Vergleich
07.05.2015, 16:08 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2015 16:19 von HaWe.)
Beitrag #1
Problem mit Array-Muster-Vergleich
hi,
ich habe momentan eine Ladehemmung für den richtigen Programmier-Ansatz.

Problem:
ich habe eineReihe von (p) Muster-Arrays mit je (i) ints, z.B. stark reduziert:
a[1][3]
a[2][3]
a[3][3]
a[4][3]
a[5][3]

und einen aktuellen array
c[3]

ich will nun gucken, in welchem der 5 Muster genau dieselben ints in jeder Zelle sind wie im aktuellen, also
if ( (a[1][1]==c[1]) && (a[1][2]==c[2]) && (a[1][3]==c[3]) ) {match=1;}
else
if ( (a[2][1]==c[1]) && (a[2][2]==c[2]) && (a[2][3]==c[3]) ) {match=2;}
else
if ( (a[3][1]==c[1]) && (a[3][2]==c[2]) && (a[3][3]==c[3]) ) {match=3;}
// usw...
else
match=-1; // kein Treffer!

das geht ja noch.

Aber jetzt habe ich eine variable Anzahl von Mustern (ändert sich während der Laufzeit) mit einer konstanten Anzahl von ints pro Zeile (ändert sich zur Kompilierungszeit). Daher kann ich jetzt nicht alle Werte einzeln per && hintereinanderschreiben,
außerdem wird das ein bisschen viel bei ~100 Mustern zu je ~20 int Werten.

Wie kann man das jetzt in eine Schleife packen???
Huh



Code:
int16_t  CheckInputPatterns() {
   int16_t   match=-1;  // -1 == no match
   int16_t   p,i;
/*  
   for( p = 1 ; p <= NumPattern ; p++) {  //  nimm p-tes Muster an Input-Besetzung, eins nach dem anderen
      for( i = 1 ; i <= NumInput ; i++) {  //  wenn alle Inputs völlig identisch besetzt sind
         if (Input[p][i] ) == currIn[i]) && ... {  // für alle Inputs von 1 bis NumInput
           match=p; break;    // speichere die Nummer des Musters, dann => fertig !
           // aber wie weiter mit den && bei unbekannter Länge, iterativ geschrieben ??
         }
      }
   }
*/
   return match;
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2015, 16:58
Beitrag #2
RE: Problem mit Array-Muster-Vergleich
Hi,
als als erstes: Arrays fangen bei 0 an und gehen dann bis size-1.
Folgendes Coding ist nicht getestet, einfach so ins Blaue rein...

Code:
int16_t  CheckInputPatterns() {
   for( int16_t p = 0 ; p < NumPattern ; p++) {  
      for( int16_t i = 0 ; i < NumInput && Input[p][i]  == currIn[i]; i++);
      if(i== NumInput) return p;
   }
   return -1;
}

Vielleicht geht's auch noch kürzer, da bin ich mir aber nicht sicher.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2015, 17:09 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2015 17:09 von HaWe.)
Beitrag #3
RE: Problem mit Array-Muster-Vergleich
das sieht wirklich schlau aus, danke Smile

(tatsächlich gehen meine NN-arrays aber wirklich von 1 bis n+1, weil 0 immer als Leerstelle gesetzt ist^^
- aber es war ja auch nur als Beispiel gedacht Smile )
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2015, 17:22
Beitrag #4
RE: Problem mit Array-Muster-Vergleich
(07.05.2015 17:09)HaWe schrieb:  (tatsächlich gehen meine NN-arrays aber wirklich von 1 bis n+1, weil 0 immer als Leerstelle gesetzt ist^^
Ich arbeite mit Uno, Nano, Tiny. Da ist man um jedes Byte geizig...

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.05.2015, 18:26 (Dieser Beitrag wurde zuletzt bearbeitet: 07.05.2015 18:28 von HaWe.)
Beitrag #5
RE: Problem mit Array-Muster-Vergleich
ja, kann ich verstehen, aber zum Einen fällt 1 Zelle von 100 weniger ins Gewicht als bei 1 von 10,
andererseits wollte ich es ursprünglich sogar auch selber bereits auf Null runter ändern .

Warum dann doch nicht, habe ich schon mal bei uns im Forum erklärt:

Zitat:die originale veröffentlichte BPN-Implementierung benutzt ein für C-Programmierer sehr ungewöhnliches Inkrement ab 1, nicht ab 0, wodurch alle Nuller-Array-Zellen verschwendet schienen. Zunächst wollte ich dies daher aus Speicherplatz-Gründen wieder auf die Nuller-Inkrementierung "re-sizen", entschied mich aber dann doch dagegen: denn jetzt hat man pro Array quasi 1 Array-Zelle als "statische Reserve", die nicht in die Backpropagation mit eingeht, die man aber z.B. als statisches "Erinnerungs-Neuron" verwenden kann, oder um es als zusätzliches statisches aktivierendes oder hemmendes oder sogar rückgekoppeltes Eingangs- oder Zwischen-Neuron zu verwenden, wie es teilw. bei rückgekoppelten Jordan- oder Elman-Netzen gemacht wird. Für künftige mögliche Erweiterungen habe ich es daher so gelassen wie in der Original-Implementierung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.05.2015, 13:18 (Dieser Beitrag wurde zuletzt bearbeitet: 09.05.2015 14:56 von HaWe.)
Beitrag #6
RE: Problem mit Array-Muster-Vergleich
Update:
Erkennung funktioniert jetzt perfekt!
Danke nochmal, Thorsten!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ein als "const" deklariertes Array übergeben Retian 5 130 08.11.2016 18:39
Letzter Beitrag: Tommy56
  Problem mit SD Card Library BennIY 4 194 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 212 22.08.2016 19:42
Letzter Beitrag: Eichner
  4x16 Tastermatrix Problem Michel 16 855 14.07.2016 10:02
Letzter Beitrag: StephanBuerger
  String-Array füllen? torsten_156 9 452 08.07.2016 20:07
Letzter Beitrag: amithlon
  Problem mit Delay und Millis funnyzocker 1 461 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Problem mit ESP8266 und EMail senden torsten_156 1 608 13.06.2016 21:14
Letzter Beitrag: torsten_156
  Messwerte in Array speichern ArduinoMega2560 2 421 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  ESP8266_01 flashen - Problem torsten_156 12 1.057 30.05.2016 20:12
Letzter Beitrag: torsten_156
  Hardwareserial/Softserial: Problem mit Superklasse tuxedo0801 10 483 19.05.2016 12:25
Letzter Beitrag: amithlon

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste