Diskussion zum Artikel "Selbst-organisierende Feature Maps (Kohonen Maps) - Wiederaufgreifen des Themas" - Seite 4

 
Vladimir Karputov:
  1. Die Kombinationen ("0", "11", "12", "21", "22") habe ich Ihnen heute nur als Beispiel genannt. Ich habe keine Ahnung, ob sie funktionieren oder nicht. Das ist es, was ich frage - wenn ich mir alle möglichen Kombinationen ausdenke, wie wird mir das Raster helfen? Ich dachte, dass dieses Raster die Anzahl der Treffer meiner Beispiele in bestimmten Gruppen (Clustern?) visuell anzeigen würde.
  2. Nun, wenn ich "... zum Beispiel den Unterschied zwischen Open[i]-Close[i] in einer Spalte und den Unterschied zwischen Open[i+1]-Close[i+1] in einer anderen Spalte, ..." mache, was ist die Rückmeldung? Nun, ich sehe verschiedene Farben - aber welche ist welche?


Alles ist dort transparent, es gibt Programmzugriff auf jeden Knoten, man kann sowohl die Daten eines Knotens abrufen, als auch durch Angabe eines Grid-Beispiels herausfinden, welcher Knoten auf das Beispiel antwortet.

Lesen Sie den Artikel genauer. Die Kartenvisualisierung ist nur eine zusätzliche Informationsausgabe, es gibt Beispiele in dem Artikel, in denen es keine Visualisierung gibt, aber das Netz seine Arbeit richtig macht.

 

Hallo, ich erhalte einen Fehler beim Kompilieren:

  • 'SOM_Net_Base.mqh' SOM_Net_Base.mqh 1 1
  • 'SOMNode.mqh' SOMNode.mqh 1 1
  • can cannot cast 'Conversion_Double' to 'Conversion_UChar' SOM_Net_Base.mqh 115 21
  • 1 Fehler, 0 Warnung(en) 2 1

      for(int i=0;i<count_double;i++)
        {
         c_uchar[i]=(Conversion_UChar) c_double[i];
         for(int j=0;j<8;j++) {txtdownl[dcnt]=c_uchar[i].c[j]; dcnt++;}
        }

Aus irgendeinem Grund wird der Datentyp nicht konvertiert

struct Conversion_Double { double d; };

in den Typ

struct Conversion_UChar  { uchar  c[8];};


 
Andrey Litvichenko:

Hallo, es gibt einen Fehler beim Kompilieren:

#include <TypeToBytes.mqh> // https://www.mql5.com/de/code/16280

      for(int i=0;i<count_double;i++)
        {
         _W(c_uchar[i])=c_double[i];
         for(int j=0;j<8;j++) {txtdownl[dcnt]=c_uchar[i].c[j]; dcnt++;}
        }


Kannst du das ganze Stück des ursprünglichen Codes ersetzen

      ArrayResize(c_uchar,count_double);
      uchar txtdownl[]; ArrayResize(txtdownl,count_double*8);
      int dcnt=0;
      for(int i=0;i<count_double;i++)
        {
         c_uchar[i]=(Conversion_UChar)c_double[i];
         for(int j=0;j<8;j++) {txtdownl[dcnt]=c_uchar[i].c[j]; dcnt++;}
        }
      string txt_titles=CharArrayToString(txtdownl);  Print(txt_titles);


ersetzen Sie ihn durch diesen

      string txt_titles=NULL;
      _W(txt_titles) = c_double;  Print(txt_titles);
 
Andrey Litvichenko:

Hallo, ich erhalte einen Fehler beim Kompilieren:

  • 'SOM_Net_Base.mqh' SOM_Net_Base.mqh 1 1
  • 'SOMNode.mqh' SOMNode.mqh 1 1
  • can cannot cast 'Conversion_Double' to 'Conversion_UChar' SOM_Net_Base.mqh 115 21
  • 1 Fehler, 0 Warnung(en) 2 1

Aus irgendeinem Grund wird der Datentyp nicht konvertiert

in den Typ



Er sollte eigentlich nicht konvertiert werden. Es wird eine Warnung und kein Fehler ausgegeben, achten Sie nicht darauf, es sollte so sein.

Wenn Sie Daten von einer Struktur zu einer anderen ohne Typkonvertierung übertragen, werden binäre Daten übertragen, nicht ihre dezimale Abbildung, die in diesem Beispiel erforderlich ist.

Dies ist kein Fehler, sondern eine Funktion.

 
Nikolay Demko:

Es soll nicht konvertieren. Es wird eine Warnung ausgegeben, kein Fehler, achten Sie nicht darauf, es sollte so sein.

Wenn Sie Daten von einer Struktur in eine andere ohne Typkonvertierung übertragen, werden binäre Daten übertragen, nicht ihre dezimale Abbildung, die in diesem Beispiel erforderlich ist.

Dies ist kein Fehler, sondern eine Funktion.


Das ist der Punkt: Es erzeugt einen Fehler und weigert sich, zu kompilieren:

  • 1 Fehler, 0 Warnung(en) 2 1
 
Die Regeln der Typumwandlung haben sich dort "leicht" geändert)
 
fxsaber:


Könnten Sie das gesamte Stück des ursprünglichen Codes ersetzen


kann durch diesen ersetzt werden.


Und der _W-Operator wird für die umgekehrte Umwandlung funktionieren, d.h. für

_W(c_double[i])=c_uchar[i];

?

 
Andrey Litvichenko:

Und der Operator _W funktioniert für die umgekehrte Transformation, d. h. für

?

Ja, in beide Richtungen. Hier sind Beispiele.

 
fxsaber:

Ja, in beide Richtungen. Hier sind einige Beispiele.


Danke, es funktioniert

 

Guten Tag!

Leider habe ich den Artikel zu spät aufgerufen, jetzt fehlen offensichtlich Dateien im Archiv

CSOM_Net_Base,
CSOM_Net_Train

Ist es eine Störung oder eine Zugangsbeschränkung?