Conseil JSL: utiliser des matrices au lieu de listesLa liste est l'un des outils de construction de base pour organiser les données dans JSL. La puissance des listes réside dans le fait qu’elles peuvent contenir n’importe quel type d’éléments (numéros, caractères, autres listes, ...) et qu’elles peuvent être agrandies et réduites au besoin. Cependant, si vous avez juste besoin d'une liste fixe de nombres, vous pouvez obtenir de bien meilleures performances avec une matrice unidimensionnelle.
Considérez ces deux exemples qui forment des tableaux de nombres impairs.
// faire une liste de nombres impairs
n = 1000;
y = {};
pour (i = 1, i <= n, i ++,
y = 2 * i - 1;
)
y;
// faire une matrice de nombres impairs
n = 1000;
y = J (1, n); // crée une matrice 1 xn avec toutes les valeurs définies sur 1
pour (i = 1, i <= n, i ++,
y = 2 * i - 1;
)
Pour quelques centaines d'articles, il n'y a pas beaucoup de différence. Mais comme n dépasse 1000 (ou si le code ci-dessus est en boucle), vous commencez à remarquer la différence de vitesse. Pour les listes, il existe une certaine quantité de frais généraux pour une croissance dynamique et une flexibilité générale.
Notez que la fonction J peut être utilisée pour créer une nouvelle matrice d’une taille donnée. J m, n est le nom du Matrice d'unité en algèbre linéaire.
Notez également qu'une matrice unidimensionnelle peut être indexée avec un seul indice. C'est-à-dire que nous pouvons utiliser y au lieu de y [1] . Cela facilite le traitement des matrices en tant que listes et dans la boucle ci-dessus, ce qui est identique dans les deux cas.
Question jusqu'à la prochaine fois: comment rendre le code encore plus rapide?
Xan Gregg a écrit: Bonjour Uday, Vous devriez essayer de poster dans le ... Xan Gregg a écrit:
Salut uday
Vous devriez essayer de poster dans les forums à community.jmp.com où vous pouvez fournir une description plus détaillée et obtenir des réponses de n'importe qui.
De votre description ici, je pense que le Loc () fonction sera utile pour enquêter. Il vous indiquera l'emplacement des lignes qui remplissent certaines conditions pour les opérations suivantes.
Pour importer les colonnes dans Graph Builder, créez-les dans un tableau avec, par exemple, Comme table () .
Uday a écrit: Bonjour Mr.Gregg, Disons que j'ai ce matr ... Uday a écrit:
Bonjour Mr.Gregg,
Disons que j'ai cette matrice avec 5 colonnes et n lignes. Maintenant, je veux modifier ces colonnes avec une condition. Par exemple: je veux faire toutes les valeurs NULL dans chacune des colonnes de la matrice qui sont inférieures à 5.
Comment pourrais-je également utiliser ces colonnes dans un générateur de graphique.
Cordialement
Uday
Conseil JSL: Remplacer les boucles par des fonctions sur les matrices - JMP B ... Conseil JSL: Remplacer les boucles par des fonctions sur les matrices - JMP Blog a écrit:
[...] mon précédent conseil JSL, nous avons vu qu'il est plus rapide d'accéder aux éléments de la matrice que de les répertorier. C'est encore plus rapide si vous ne [...]
Michael a écrit: Je penserais que y = index (1,1000,2) serait ... Michael a écrit:
Je penserais que y = index (1,1000,2) serait plus rapide bien que je ne l’aie pas vérifié.
Xan Gregg a écrit: Vous avez raison. Je pensais que j'étais en train de ... Xan Gregg a écrit:
Tu as raison. Je pensais avoir été intelligent pour conserver cette amélioration dans un futur conseil, mais j'aurais peut-être dû trouver un exemple qui ne pourrait pas être compromis.
Ryan Kelly a écrit: comment utilisez-vous cela dans JMP? Ryan Kelly a écrit:
Comment utilisez-vous cela dans JMP?
Xan Gregg a écrit: JSL est le langage de script JMP. Ses... Xan Gregg a écrit:
JSL est le langage de script JMP. Cela n'est pas nécessaire pour une utilisation interactive normale de JMP, mais peut être utile pour des tâches personnalisées. Fichier> Nouveau> Script vous donnera une fenêtre de script vide dans laquelle vous pouvez placer des scripts tels que les extraits de code ci-dessus et les exécuter avec Edition> Exécuter le script (Ctrl-R). La sortie, le cas échéant, passe à la fenêtre Journal.
Chris Dorger a écrit: Comment puis-je faire une liste à partir d'une matrice ... Chris Dorger a écrit:
Comment créer une liste à partir d'une matrice ou d'une colonne de table de données?
Xan Gregg a écrit: La fonction As List () convertira une ma ... Xan Gregg a écrit:
La fonction As List () convertira une matrice en une liste de listes, une pour chaque ligne. Si vous souhaitez une longue liste, vous pouvez utiliser la fonction Shape () pour placer d'abord tous les éléments de la matrice dans une ligne.