Consejo de JSL: usar matrices en lugar de listasLa lista es una de las herramientas de construcción básicas para organizar datos en JSL. El poder de las listas es que pueden contener cualquier tipo de elementos (números, caracteres, otras listas, ...), y pueden crecer y reducirse según sea necesario. Sin embargo, si solo necesita una lista fija de números, puede obtener un rendimiento mucho mejor de una matriz unidimensional.
Considera estas dos muestras que hacen matrices de números impares.
// hacer una lista de números impares
n = 1000;
y = {};
para (i = 1, i <= n, i ++,
y = 2 * i - 1;
);
y;
// hacer una matriz de números impares
n = 1000;
y = J (1, n); // crea una matriz 1 xn con todos los valores establecidos en 1
para (i = 1, i <= n, i ++,
y = 2 * i - 1;
);
Para unos pocos cientos de artículos, no hay mucha diferencia. Pero a medida que n va más allá de 1000 (o si el código anterior está en un bucle), comienza a notar la diferencia en la velocidad. Para las listas, hay una cierta cantidad de gastos generales para el crecimiento dinámico y flexibilidad general.
Observe que la función J se puede utilizar para crear una nueva matriz de un tamaño determinado. J Minnesota es el nombre para el Matriz de unidad en algebra lineal.
También tenga en cuenta que una matriz unidimensional se puede indexar con un solo subíndice. Es decir, podemos usar y en lugar de y [1] . Eso hace que sea más fácil tratar las matrices como listas, y en el bucle anterior, que es el mismo en ambos casos.
Pregunta hasta la próxima vez: ¿Cómo se puede hacer el código aún más rápido?
Xan Gregg escribió: Hola Uday, deberías intentar publicar en el ... Xan Gregg escribió:
Hola uday
Debes intentar publicar en los foros en community.jmp.com donde puede proporcionar una descripción más detallada y obtener respuestas de cualquier persona.
De su descripción aquí, creo que la Loc () La función será útil para investigar. Le proporcionará las ubicaciones de las filas que cumplen una determinada condición para las operaciones posteriores.
Para llevar las columnas a Graph Builder, conviértelas en una tabla con, por ejemplo, Como Tabla () .
Uday escribió: Hola Sr. Gregg, Así que digamos que tengo esta matr ... Uday escribió:
Hola señor Gregg,
Así que digamos que tengo esta matriz con 5 columnas y n filas. Ahora quiero modificar estas columnas con una condición. Por ejemplo: quiero hacer que todos los valores sean NULL en cada una de las columnas de la matriz que sean menores que 5.
¿Cómo también usaría estas columnas en un generador de gráficos?
Saludos
Uday
Consejo de JSL: Reemplazar bucles con funciones en matrices - JMP B ... Consejo de JSL: Reemplazar bucles con funciones en matrices - Blog JMP escribió:
[...] mi consejo anterior de JSL, vimos cómo es más rápido acceder a los elementos de la matriz que a los elementos de la lista. Es más rápido aún si no lo haces [...]
Michael escribió: Pensaría que y = índice (1,1000,2) sería ... Miguel escribió:
Pensaría que y = índice (1,1000,2) sería más rápido aunque no lo haya verificado.
Xan Gregg escribió: Tienes razón. Pensé que estaba siendo clev ... Xan Gregg escribió:
Tienes razón. Pensé que estaba siendo inteligente para guardar esa mejora para una sugerencia futura, pero tal vez debería haber encontrado un ejemplo que no pudiera ser socavado.
Ryan Kelly escribió: ¿cómo se ejecuta esto en JMP? Ryan Kelly escribió:
¿Cómo ejecutas esto en JMP?
Xan Gregg escribió: JSL es el lenguaje de script JMP. Sus... Xan Gregg escribió:
JSL es el lenguaje de script JMP. No es necesario para el uso interactivo normal de JMP, pero puede ser útil para tareas personalizadas. Archivo> Nuevo> Script le dará una ventana de script vacía donde puede poner scripts como los fragmentos de código anteriores y ejecutarlos con Editar> Ejecutar script (Ctrl-R). La salida, si la hay, va a la ventana de registro.
Chris Dorger escribió: ¿Cómo hago una lista de una matriz ... Chris Dorger escribió:
¿Cómo hago una lista de una matriz o una columna de tabla de datos?
Xan Gregg escribió: La función As List () convertirá una ma ... Xan Gregg escribió:
La función As List () convertirá una matriz en una lista de listas, una para cada fila. Si desea una lista larga, puede usar la función Shape () para poner primero todos los elementos de la matriz en una fila.