Diskussion zum Artikel "Neuronale Netze leicht gemacht (Teil 17): Reduzierung der Dimensionalität" - Seite 2

 

Hallo Dmitrij


Dieser Fehler tritt auf, wenn ich versuche, den EA-Code zu kompilieren


cannot convert type 'bool' to type 'matrix' pca.mqh 241 13

Dieser Fehler tritt hier auf:


bool CPCA::Study(matrix &data)

{

Matrix X;

ulong total = data.Rows();

if(!X.Init(total, data.Cols()))

return false;

v_Means = data.Mean(0);

v_STDs = data.Std(0) + 1e-8;

for(ulong i = 0; i < total; i++)

{

vector temp = data.Row(i) - v_Means;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Zeile mit Fehler

}


Danke für die Hilfe

Rogerio

 
MrRogerioNeri #:

Hallo Dmitrij


Dieser Fehler tritt auf, wenn ich versuche, den EA-Code zu kompilieren


cannot convert type 'bool' to type 'matrix' pca.mqh 241 13

Dieser Fehler tritt hier auf:


bool CPCA::Study(matrix &data)

{

Matrix X;

ulong total = data.Rows();

if(!X.Init(total, data.Cols()))

return false;

v_Means = data.Mean(0);

v_STDs = data.Std(0) + 1e-8;

for(ulong i = 0; i < total; i++)

{

vector temp = data.Row(i) - v_Means;

temp /= v_STDs;

X = X.Row(temp, i); <<<<<<<<<<<<<<<<<<<<<<<< Zeile mit Fehler

}


Danke für die Hilfe

Rogerio

Hallo Rogerio.

Ersetze X = X.Row(temp, i); zu

if(!X.Row(temp, i))
   return false;
 

beim Kompilieren werden 2 Fehler erzeugt. Codefragment

p217 for(ulong r=0; r<Gesamt; r++)

218 {

219 vector temp = data.Row(r)- v_Means;

220 temp / = v_STDs;

221 result=result.Row(temp,r);

Kompilierungsfehler in Zeile 221 - kann Typ 'bool' nicht in Typ 'Matrix' konvertieren

Zeile 241 X = X.Row(temp,i); gleicher Fehler


Wie kann man das beheben? Kann mir jemand einen Tipp geben? Ich glaube, ich muss mir den Code etwas genauer ansehen, aber ich habe nicht genug Wissen, um es herauszufinden.

Ich bin immer noch ein Experte!

 
ne86.mo Kompilierungsfehler in Zeile 221 - kann Typ 'bool' nicht in Typ 'matrix' konvertieren

Zeile 241 X = X.Row(temp,i); gleicher Fehler


Wie kann man das beheben? Kann mir jemand einen Tipp geben? Ich denke, man sollte sich den obigen Code ansehen, aber ich habe nicht genug Wissen, um es herauszufinden.

Ich bin immer noch ein Experte!

Sie brauchen nicht zuzuweisen. In den aktuellen Builds wird der Vektor direkt in die Matrix geschrieben, und das logische Ergebnis der Operation wird zurückgegeben.

for(ulong r = 0; r < total; r++)
     {
      vectorf temp = data.Row(r) - v_Means;
      temp /= v_STDs;
      result.Row(temp, r);
     }
 

DMITRY !!! gratulieren Ihnen zu unserem Nationalfeiertag RUSSLAND-TAG !!!! Gesundheit ! Erfolg und viel Glück bei allen Ihren Unternehmungen !!! Frohes und

frohes Wochenende mit Familie und Freunden !!!!

Rat ! Soll ich das Thema : "NS-Unterricht ohne Lehrer" mit meiner Hardware weiter meistern.

Prozessor i7 Prozessor 3,5 ghertz, RAM 8 GB, vidiokarta Nvidio 2060 c 8 GB.

In Artikel 15 kompiliert alles gut, aber kmeans advisor funktioniert nicht.

Es schreibt Create data : 10000 von 10040 und alles bleibt stehen.

Nichts Verständliches wird in das Protokoll geschrieben: " Ausführungsfehler 0".

in MT5 250000 bar im Fenster eingestellt

Der Expert Advisor wurde auf realen Handel "Sberbank" - 6min ausgeführt.

Der Zyklus "Training mit einem Lehrer" auf die gleichen Daten bestanden im Allgemeinen schlief, aber hier stolperte ich!