Gibt es eine Möglichkeit, ein mehrschichtiges Array zu erstellen?Hallo,
1) Ich versuche, ein mehrschichtiges Array zu erstellen, bei dem ein Schlüssel mehrere Schichten erhält. Gibt es eine Möglichkeit, dies zu tun? Beispielsweise sollte mein JSL so aussehen:
EX = Assoziatives Array( {"Blau", "Grün", "Rot"}, {1, 2, 3}, {"Bär", "Gecko", "Kaninchen"} );
Ich versuche es so hinzubekommen, dass ich, wenn ich „Blau“ auswähle, sowohl 1 als auch „Bär“ bekomme.
2) Gibt es eine Möglichkeit, ein Array für eine Funktion abzubilden? Zum Beispiel:
EX = Assoziatives Array( {"Blau", "Grün"}, {FunktionA, FunktionB} );
Gibt es eine Möglichkeit, dass der zurückgegebene Wert eine Funktion auslöst? Ich habe es versucht und die Werte, die ich bekomme, sind Zeichenfolgen, d. h. wenn ich „Blau“ auswähle, bekomme ich die Zeichenfolge „FunktionA“, anstatt FunktionA auszuführen.
Erweiterte statistische ModellierungAutomatisierung und SkriptingDatenexploration und -visualisierungBetreff: Gibt es eine Möglichkeit, ein mehrschichtiges Array zu erstellen?Leider bietet JMP keine an Postleitzahl() Funktion für Listen, aber Sie können einfach eine als Lösung für Ihr erstes Element erstellen:
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 )Für Ihr zweites Element siehe die Funktion Name Ausdruck () - Es sollte tun, was Sie wollen.Beachten Sie jedoch, dass Sie aufgrund von Einschränkungen des JSL-Parsers zuerst eine temporäre Variable festlegen müssen, in der die Funktion landen kann, und dann von dieser temporären Variablen aus aufrufen.
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"} ) )Betreff: Gibt es eine Möglichkeit, ein mehrschichtiges Array zu erstellen?Nur eine andere Möglichkeit zur Implementierung wäre die folgende:
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 ) );