Existe-t-il un moyen de créer un tableau multicouche ?Salut,
1) J'essaie de créer un tableau multicouche où une clé obtient plusieurs couches. Existe-t-il un moyen de procéder ainsi ? Par exemple, mon jsl devrait ressembler à ceci :
EX = Tableau associatif( {"Bleu", "Vert", "Rouge"}, {1, 2, 3}, {"Ours", "Gecko", "Lapin"} );
J'essaie de faire en sorte que si je sélectionne « Bleu », j'obtienne à la fois 1 et « Ours ».
2) Existe-t-il un moyen de mapper un tableau pour une fonction. Par exemple,
EX = Tableau associatif( {"Bleu", "Vert"}, {fonctionA, fonctionB} );
Existe-t-il un moyen pour que la valeur renvoyée déclenche une fonction ? J'ai essayé et les valeurs que j'obtiens sont exprimées en termes de chaîne, c'est-à-dire que si je sélectionne « Bleu », j'obtiens la chaîne « functionA » au lieu d'exécuter functionA.
Modélisation statistique avancéeAutomatisation et scriptsExploration et visualisation des donnéesRe : Existe-t-il un moyen de créer une matrice multicouche ?Malheureusement, JMP ne propose pas de Zip *: français() fonction pour les listes, mais vous pouvez facilement en créer une comme solution à votre premier élément :
zip = Function( {list a, list b},
{zipped, i},
zipped = {};
Summation( i = 1, Min( Length( list a ), Length( list b ) ),
zipped[i] = Eval List( {list a[i], list b[i]} );
0
);
zipped
);
EX = Associative Array( {"Blue", "Green", "Red"}, zip( {1, 2, 3}, {"Bear", "Gecko", "Rabbit"} ) );
Show( ex )Pour votre deuxième élément, voir la fonction Nom Expr() -- il devrait faire ce que vous voulez.Notez cependant qu'en raison des limitations de l'analyseur JSL, vous devrez d'abord définir une variable temporaire pour que la fonction atterrisse, puis appeler à partir de cette variable temporaire.
zip = Function( {list a, list b},
{zipped, i},
zipped = {};
Summation( i = 1, Min( Length( list a ), Length( list b ) ),
zipped[i] = Eval List( {list a[i], list b[i]} );
0
);
zipped
);
EX = [=>];
EX["zip"] = Name Expr( zip );
func = ex["zip"];
Show( func( {1, 2, 3}, {"Bear", "Gecko", "Rabbit"} ) )Re : Existe-t-il un moyen de créer une matrice multicouche ?Juste une autre façon de mettre en œuvre serait la suivante:
Names Default To Here( 1 );
// nested structure
EX = Associative Array( {"Blue", "Green", "Red"}, {{1, "Bear"}, {2, , "Gecko"}, {3, "Rabbit"}} );
Show( EX["Blue"] );
// Function example
myadd = Function( {op1, op2},
op1 + op2
);
mymult = Function( {op1, op2},
op1 * op2
);
func_aa = Associative Array( {"add", "mult"}, {myadd, mymult} );
myfunc = func_aa["add"];
Show( myfunc( 1, 2 ) );