Niemand liest sie, aber sie sind bereit, sie zu unterstützen. Ich dachte, ich hätte Sie in dem Thread über maschinelles Lernen gesehen? Wenn ja, dann sollten Sie verstehen, was in dem Artikel steht.
Ich schätze, ich verstehe es nicht ganz. Warum ein Matrixelement 3 Werte hat. Es ist ein 3-dimensionales Array. Warum in der Hilfe der Vektor ein eindimensionales Array ist und die Matrix in diesem Beispiel durch ein dreidimensionales dargestellt wird.
ZY, es passiert)))) in dem Beispiel gibt es 3 Zeilen und 4 Spalten)))) Matrix))))))
Ein weiterer kleiner Fehler im Abschnitt"Kopieren von Zeitreihen in Matrix oder Vektor":
//--- Liste der zu berechnenden Zeichenstring symbols[]= {"EURUSD", "GBPUSD", "USDJPY", "USDCAD", "USDCHF"};
int size=ArraySize(symbols);
//--- Matrix und Vektor zur Ermittlung der Preise Schließenmatrix rates(InBars, size);
vector close;
for(int i=0; i<size; i++)
{
//--- Schließen der Preise in einen Vektor umwandelnif(close.CopyRates(symbols[i], InTF, COPY_RATES_CLOSE, 1, InBars))
{
//--- Einfügen des Vektors in die Zeitreihenmatrix
rates.Col(close, i);
PrintFormat("%d. %s: %d Schlusskurse zur Matrix hinzugefügt.", i+1, symbols[i], close.Size());
//--- Ausgabe der ersten 20 Werte des Vektors zur Fehlersucheint digits=(int)SymbolInfoInteger(symbols[i], SYMBOL_DIGITS);
Print(VectorToString(close, 20, digits));
}
else
{
Print("vector.CopyRates(%d,COPY_RATES_CLOSE) failed. Error ", symbols[i], GetLastError());return;
}
}
Wahrscheinlich ist es besser so:
//--- Liste der zu berechnenden Zeichenstring symbols[] = {"EURUSD", "GBPUSD", "USDJPY", "USDCAD", "USDCHF"};
int size =::ArraySize(symbols);
//--- Matrix und Vektor zur Ermittlung der Preise Schließenmatrix rates_mx(InBars, size);
vector close_vc;
for(int i = 0; i < size; i++)
{
::ResetLastError();//--- Schließen der Preise in einen Vektor umwandelnif(close_vc.CopyRates(symbols[i], InTF, COPY_RATES_CLOSE, 1, InBars))
{
//--- Einfügen des Vektors in die Zeitreihenmatrix
rates_mx.Col(close_vc, i);
::PrintFormat("%d. %s: %d Schlusskurse zur Matrix hinzugefügt.", i + 1, symbols[i],close_vc.Size());
//--- Ausgabe der ersten 20 Werte des Vektors zur Fehlersucheint digits = (int)::SymbolInfoInteger(symbols[i], SYMBOL_DIGITS); ::Print(VectorToString(close_vc, 20, digits));
}
else
{
::PrintFormat("vector.CopyRates(%s,COPY_RATES_CLOSE) failed. Error %d", symbols[i], ::GetLastError());return;
}
}
Es ist kein Vektor, es ist eine Matrix, ich habe den Code oben
Du musst es selbst herausfinden oder den Compiler überzeugen. Siehe Beispiele, lesen.
Wie erhält man also eine Spalte aus einer Matrix?
Man kann einen Vektor aus einer Matrix mit Col
Was meinen Sie mit "herausziehen"? Entfernen?
Sie können einen Vektor aus einer Matrix erhalten, indem Sie Col
Was meinen Sie mit "herausnehmen"? Entfernen?
Herausnehmen im Sinne einer Umwandlung in etwas, mit dem man arbeiten kann.
Ich habe oben den Code gezeigt, der mir mit Col nicht gelungen ist, es war eine Matrix, kein Vektor, wie du geschrieben hast.
Sie müssen sich ausruhen und morgen noch einmal alle Ihre Fragen in diesem osbud lesen
Vielen Dank für Ihr Interesse!
Die meisten Fragen wurden mit Ihrer Hilfe geklärt.
Ich werde bis morgen warten, vielleicht können Sie meine Frage später beantworten.
Niemand liest sie, aber sie sind bereit, sie zu unterstützen. Ich dachte, ich hätte Sie in dem Thread über maschinelles Lernen gesehen? Wenn ja, dann sollten Sie verstehen, was in dem Artikel steht.
Hier liegt wahrscheinlich ein kleiner Fehler vor:
Es sollte so sein:
Ein weiterer kleiner Fehler im Abschnitt"Kopieren von Zeitreihen in Matrix oder Vektor":
Wahrscheinlich ist es besser so:
Hier liegt wahrscheinlich ein kleiner Fehler vor:
Es sollte so sein:
Danke, korrigiert