Buenas! Querría hacer algo como...
vrArray = [
0,1,2,
3,4,5
]
etc. Alguna forma de crear un array 2D para maximizar el visualizar fácilmente los datos como si fueran una matriz
Sé que puedo hacer:
vrArray[0,0] = 0; vrArray[0,1] = 1;...
vrArray[1,0] = 3; ...
pero es extremadamente cansino, feo e ineficiente... quiero poder ver los datos en forma de matriz 2D fácilmente interpretable y editable en el propio evento create. Alguna idea?
Lo haría con un script, pero sólo permite 12 argumentos, y la matriz puede sobrepasar las 50 columnas...
Podrías crear un script para convertir cadenas de texto en arrays, con la sintaxis de matlab: 'coma' para separan los valores en un rengón y 'punto y coma' para crear un nuevo renglón. Me parece interesante, intentaré hacer un script.
EDIT: Ya hice un script
[gml]
///string_matrix( string );
/*
Crea una matriz 2D a partir de una cadena
, separa las columnas
; separa los renglones
*/
var cad = argument0; //cadena
var lon = string_length(cad); //longitud
var pos; //posicion
var mat; //matriz
var car; //caracter
var sub = ""; //sub-cadena
var i=0, j=0; //indices
for( pos=1; pos<=lon; pos++ ) //para todos los caracteres
{
car = string_char_at( cad, pos );
if( car == "," ){ //si es coma
mat[i,j] = real(sub); //agregar valor a la matriz
sub = ""; //borrar sub-cadena
i++; //incrementar indice
}
else if( car == ";" ){ //si es punto y coma
mat[i,j] = real(sub); //agregar valor a la matriz
sub = ""; //borrar sub-cadena
i = 0; //reiniciar i
j++; //incrementar j
}
else sub += car; //agregar caracter a sub-cadena
}
return mat; //devolver matriz
[/gml]
No importar que se agreguen espacios o saltos de línea, sólo se deben usar dígitos y los caracteres ,.;
y la cadena debe terminar con ;
Ejemplo de uso:
[gml]
varArray = string_matrix("
1.10, 2.00, 3.14, 4.00;
5.00, 6.66, 7.00, 8.00;
9.22, 10.0, 11.1, 12.9;
");
[/gml]