Diskussion zum Artikel "Matrix- und Vektoroperationen in MQL5" - Seite 3

 
Rashid Umarov #:
Oder schauen Sie in den Artikel MatrixSetValues, es ist alles klar ersichtlich.

Ich habe es verstanden, danke, es ist wie ein zweidimensionales Array am Ende.

 
Rashid Umarov #:

Ich bin ehrlich gesagt verwirrt, gibt es eine Beschreibung hier 1 und hier 2, und die erste Variante ist nach dem Artikel, aber nichts ist von der zweiten reproduziert. Oder ist es, dass ich nicht reproduzieren, und es ist möglich, Daten in die Matrix aus einer binären Datei unter Umgehung des Arrays zu lesen?

Der zweite Link hat eine solche Lösung.

void matrix .FromFile(const int rows, condt int cols, const int file_handle, const int count=-1, const int offset=0)

fromfile

Erzeugt eine Matrix aus Daten in einer Text- oder Binärdatei

Документация по MQL5: Методы матриц и векторов
Документация по MQL5: Методы матриц и векторов
  • www.mql5.com
Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Es steht direkt in der Einleitung

Если кратко, то вектор — это одномерный массив типа double, матрица — двумерный массив типа double. Векторы бывают вертикальные и горизонтальные, но в MQL5 они не разделяются.

Матрицы можно представить как массив горизонтальных векторов, где первый индекс матрицы означает номер строки, а второй индекс — номер столбца.


Anders als in der linearen Algebra beginnt die Zeilennummerierung und die Spaltennummerierung bei Null, wie bei Arrays.

 
Aleksey Vyazmikin #:

Der zweite Link enthält diese Lösung.

void matrix .FromFile(const int rows, condt int cols, const int file_handle, const int count=-1, const int offset=0)

fromfile

Erzeugt eine Matrix aus Daten in einer Text- oder Binärdatei

Dies ist noch nicht implementiert

 
Rashid Umarov #:

Das steht schon in der Einleitung

Es ist schwer vorstellbar, welche Dinge wörtlich und welche abstrakt zu nehmen sind....

 
Rashid Umarov #:

Dies ist noch nicht umgesetzt worden.

Ich hab's, warten wir auf.... obwohl es natürlich wünschenswert ist, die gleiche Art und Weise zu tun, wie bin-Datei gelesen wird, d.h., dass es verschiedene Füllung - was erforderlich ist, und dann bereits von einem bestimmten Ort, wo die Matrix ist es angeben...

 

Ich verstehe das nicht, eine Matrix ist doch ein zweidimensionales Array, oder?

Ich möchte den Maximalwert einer bestimmten Spalte in dieser Matrix finden, ich schaue mir die Anweisungen an.

//Пример:

   matrix matrix_a={{10,3,2},{1,8,12},{6,5,4},{7,11,9}};
   Print("matrix_a\n",matrix_a);
 
   vector cols_max=matrix_a.ArgMax(0);
   vector rows_max=matrix_a.ArgMax(1);
   ulong  matrix_max=matrix_a.ArgMax();
 
   Print("cols_max=",cols_max);
   Print("rows_max=",rows_max);
   Print("max index ",matrix_max,"  max value ",matrix_a.Flat(matrix_max));
 
   /*
 matrix_a
 [[10,3,2]
 [1,8,12]
 [6,5,4]
 [7,11,9]]
 cols_max=[0,3,1]
 rows_max=[0,2,0,1]
 max index 5 max wert 12.0
 */

Und wie soll ich 3 und 4 Ziffern in den Koordinaten verstehen, wenn es nur zwei sein sollen?

Und wie bekomme ich am Ende den Maximalwert einer bestimmten Spalte?

 
Wie kopiert man eine bestimmte Spalte/Zeile einer Matrix in einen Vektor oder ein Array?
 

Warum muss ich das Terminal erneut öffnen, um die Matrix zu löschen?

Essenz - Code schreiben - Matrix ausfüllen - Matrixergebnisse drucken - Skript ausführen - Ausfüllen der Matrix kommentieren - Skript ausführen - Matrix mit alten Werten drucken.

 
Rashid Umarov #:

Das steht schon in der Einleitung

Nun, auf dem Bild könnte man die Nummerierung von 00, 01, 02.... erste Zeile ändern, dann wäre es sofort klarer.