Discusión sobre el artículo "Trabajamos con matrices y vectores en MQL5" - página 3

 
Rashid Umarov #:
O mira en el artículo MatrixSetValues, está todo a la vista.

Lo tengo, gracias, al final es como un array bidimensional.

 
Rashid Umarov #:

Sinceramente estoy confundido, hay una descripción aquí 1 y aquí 2, y la primera variante es de acuerdo con el artículo, pero no se reproduce nada de la segunda. ¿O es que no reproduzco, y es posible leer los datos en la matriz desde un archivo binario omitiendo la matriz?

El segundo enlace tiene una solución de este tipo.

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

fromfile

Crea una matriz a partir de los datos de un fichero de texto o binario

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

Está escrito en la introducción

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

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


Sólo la numeración de filas y columnas, a diferencia del álgebra lineal, empieza desde cero, como en las matrices.

 
Aleksey Vyazmikin #:

El segundo enlace tiene esta solución.

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

fromfile

Crea una matriz a partir de los datos de un fichero de texto o binario

Aún no se ha implementado

 
Rashid Umarov #:

Lo dice en la introducción

Es difícil imaginar qué cosas deben tomarse al pie de la letra y cuáles en abstracto....

 
Rashid Umarov #:

Aún no se ha aplicado

Entendido, vamos a esperar a.... aunque, por supuesto, es deseable hacer de la misma manera como se lee el archivo bin, es decir, que habría diferentes de llenado - lo que se requiere, y luego ya especificar desde un lugar específico donde la matriz está allí ...

 

No entiendo, una matriz es un array bidimensional, ¿no?

Quiero encontrar el valor máximo en una determinada columna de esta matriz, voy a mirar las instrucciones.

//Пример:

   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 value 12.0
 */

¿Y cómo se supone que debo entender 3 y 4 dígitos en las coordenadas cuando sólo debería haber dos?

Y, ¿cómo obtengo al final el valor máximo de una determinada columna?

 
¿Cómo copiar una columna/fila específica de una matriz en un vector o matriz?
 

¿Por qué tengo que volver a abrir el terminal para borrar la matriz?

Esencia - escribir código - rellenar matriz - imprimir resultados de matriz - ejecutar script - comentar relleno de matriz - ejecutar script - imprimir matriz con valores antiguos.

 
Rashid Umarov #:

Lo dice en la introducción

Bueno, en la imagen se podría cambiar la numeración de 00, 01, 02.... primera fila, quedaría más claro inmediatamente.