Token de matriz no válidoHola. No encontré nada sobre esto además de < https://community.jmp.com/t5/Discussions/invalid-matrix-token/td-p/2111> (una publicación terriblemente formateada) y nada en el índice de secuencias de comandos. ¿Qué es un error de "token de matriz no válido"? ¿Qué significa?
Cuando intento crear una instancia de una matriz en mi script como
m = [i j];
donde y son variables numéricas, arroja el error y apunta a i.
Creo que ese es todo el contexto que puedo dar. Avíseme si es necesario realizar alguna aclaración específica, puedo intentar ayudarlo a ayudarme.
Salud,
Miguel
Automatización y secuencias de comandosRe: Token de matriz no válidoHola,
@jthi proporcionó una respuesta con una sintaxis difícil de encontrar.Estoy agregando un poco para su información. Siendo una persona mayor, todavía me gusta el concepto de asignar espacio para el almacenamiento de la matriz y liberarlo no utilizado. Ahorra la necesidad de concatenar y podría suponer un ahorro de tiempo, especialmente para matrices potencialmente grandes.
Además, creo que un método simple para crear matrices es usar la función J de JMP, que aparece en el Índice de secuencias de comandos > Funciones > Matriz.
A continuación se muestra un script simple que demuestra su uso.Para su información.
Names Default To Here( 1 );
m1x2 = J( 1, 2, 0 ); // a 1x2 matrix of zeros
m2x1 = J( 2, 1, Empty() ); // a 2x1 matrix all empty values
Show( m1x2, m2x1 );
imax = 100;
jmax = 1000;
//like an ALLOCATE or DIM
mm = J( imax, jmax, Empty() );
//within the program logic and counting say imax = 5 and jmax =3;
imax = 5;
jmax = 3;
//like a redimension
mm = mm[1 :: imax, 1 :: jmax];
Show( mm, N Col( mm ), N Row( mm ) );
Re: Token de matriz no válidoPara Matrix Concatenation, la ayuda de JMP probablemente tendrá las respuestas Ayuda de JMP: Concatenación de matrices
También recuerde establecer el valor en la matriz anterior si desea cambiar el valor.
Names Default To Here(1);
i = 1;
k = 1;
m1 = Matrix({{i, k}}); //(1x2)
Write(m1);
Write("\!N");
m1 |/= [2 2]; //or m1 = m1 |/ [2 2]; or m1 = VConcat(m1, [2 2]);
Write(m1);Re: Token de matriz no válidoEstá bien, lo haré, perdón por la publicación innecesaria allí, no vi tu respuesta aquí. ¡Muchas gracias!Re: Token de matriz no válidoTengo problemas para concatenar usando Concat() o |/ mi matriz inicial y elementos adicionales. Cuando escribo() la salida, es equivalente a la matriz inicial, no se concatenó nada (el resultado es [0 0]).Re: Token de matriz no válidoJuega con este ejemplo:
Names Default To Here(1);
i = 1;
k = 1;
m1 = Matrix({{i, k}}); //(1x2)
m2 = Matrix({{i}, {k}}); //(2x1)
Show(m1, m2);y verifique Construir matrices a partir de listas desde el enlace que proporcioné anteriormente.
Re: Token de matriz no válidoGracias, @jthi . ¡Eso funciona!
¿Puedes comentar brevemente sobre la dimensionalidad? Creo que lo descubrí, {{}{}} es un 2x0, pero no sé cómo hacer un 0x2.
Miguel
Re: Token de matriz no válidoNo puedo explicar exactamente el mensaje de error. Probablemente relacionado con esto Construir matrices y en el fin:
Construir matrices a partir de expresiones
Para construir matrices a partir de expresiones, utilice Matriz() . Los elementos deben ser expresiones que se resuelvan en números.
Names Default To Here(1);
i = 1;
k = 1;
m = Matrix({{i, k}}); //[1 1]