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
Question Problem beim seriellen Einlesen von RFID-Reader Bezel 5 201 05.11.2017 22:37
Letzter Beitrag: Tommy56
  String nach Byte Array in ASCII-Codierung nexus1212 7 353 05.11.2017 14:36
Letzter Beitrag: Tommy56
  char-Array nach int? torsten_156 8 402 04.11.2017 18:44
Letzter Beitrag: Tommy56
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 10 781 30.10.2017 19:33
Letzter Beitrag: Bino87
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 403 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Problem mit LSM 303 Snörb 1 269 22.08.2017 14:16
Letzter Beitrag: Snörb
  Problem mit externem Interrupt manfred474 13 1.033 13.08.2017 08:54
Letzter Beitrag: MicroBahner
  Problem mit Klassen GuaAck 4 422 09.08.2017 09:28
Letzter Beitrag: MicroBahner
  pinMode mit array luj1990 6 706 22.07.2017 10:24
Letzter Beitrag: Binary1
Question Problem mit TFT Sam217 8 779 20.07.2017 21:51
Letzter Beitrag: hotsystems

Gehe zu:


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