Comment référencer une variable de table à l'intérieur d'une variable de tableAprès avoir créé les deux premières variables, j'aimerais que mes variables angleRefY et angleRefX soient décalées de zéroX et zéroY par un nombre statique. J'ai essayé de procéder de différentes manières, comme vous pouvez le voir ci-dessous.

La seule façon de produire un nombre était ce script, mais la variable devient alors 6 au lieu de QQ+1, donc elles ne sont toujours pas liées.
dt << Set Table Variable("TT", dt:QQ + 1);Est-ce que quelqu'un sait comment cela pourrait être fait ? Idéalement, zeroX = un nombre, zeroY = un nombre, angleRefX = zeroX + un nombre et angleRefY = zeroY + un nombre comme référence dynamique.
Re : Comment référencer une variable de table dans une variable de tablevous pouvez toujours simplement lancer la variable dans l'espace de noms global et y faire référence.
Re : Comment référencer une variable de table dans une variable de tableEt bien voilà. S'il ne peut stocker que des valeurs de chaîne, il semble clair que je ne pourrai pas en faire une référence dynamique. L'exécution du script de table est logique. C'est aussi juste un clic supplémentaire, pas mal. Merci pour l'aide!!Re : Comment référencer une variable de table dans une variable de tableJim,
Merci pour cette astuce sur les variables de table étant des caractères. C'est un problème certain, arrachez-vous les cheveux si vous ne le savez pas, problème à rencontrer.
un autre petit ajout.si, dt:QQ="51" ; puis en enveloppant dt:QQ, comme ceci, num(dt:QQ) renverra 51 plutôt que "51". Mais si dt:QQ n'est pas numérique, alors il sera renvoyé manquant.
L'alternative à cela, qui fonctionnera,
if ( dt:TT == "51", show("success"), show("didn't quite work"));
est quelque chose comme ça, qui fonctionnera si dt:TT est numérique
if ( num( dt:TT ) == 51, show("success"), show("didn't quite work"));Re : Comment référencer une variable de table dans une variable de tableUne variable de table n'est qu'une chaîne de caractères enregistrée.Même si votre valeur QQ avait fonctionné, votre déclaration IF ne pourrait jamais être vraie.
if ( dt:TT == 51, show("success"), show("didn't quite work"));
dt:TT ne peut jamais avoir la valeur 51. Toutes les variables de table finissent sous forme de chaînes de caractères, donc l'instruction IF pour fonctionner un jour, elle devrait être écrite comme suit :
if ( dt:TT == "51", show("success"), show("didn't quite work"));
Voici la documentation du Guide de script
Table Variables
Table variables are for storing a single text string value, such as “Notes”. To understand how
variables work, first get its existing value by sending a Get Table Variable message:
dt = Open( "$SAMPLE_DATA/Solubility.jmp" );
dt << Get Table Variable( "Notes" );
"Chemical compounds were measured for solubility in different solvents. This
table shows the log of the partition coefficient (logP) of 72 organic
solutes in 6 aqueous/nonpolar systems."
Now change the existing value of the string using Set Table Variable and then use Get
Table Variable again to check that the string has been updated:
dt << Set Table Variable( "Notes", "Solubility of chemical compounds" );
dt << Get Table Variable( "Notes" );
"Solubility of chemical compounds"
The following example adds two new table variables to a data table:
dt = Open( "$DOCUMENTS/Big Class.jmp" );
myvar = "This is my version of the JMP Big Class sample data.";
dt << Set Table Variable( "key1", myvar );
dt << Set Table Variable( "key2", myvar );
Notice that setting the value creates a new variable only if one by the given name does not
already exist. If you add two table variables with the same name, only one variable is created.
Vous pouvez éventuellement faire ce que vous voulez en utilisant un script de table, mais vous devrez d'abord définir la variable de table QQ, puis exécuter le script de table qui mettra à jour TT.
Re : Comment référencer une variable de table dans une variable de tableCela crée un décalage statique, j'aurais dû être plus clair sur le fait que l'objectif est un décalage dynamique. Par exemple, si QQ est réaffecté à 43, l'objectif est que TT se résolve tout seul à 44.
Voici une adaptation de votre code qui devrait indiquer si la variable est réellement dynamique ou non.
names default to here(1);
dt=new table("Example", add rows(3),new column("Sample", values([1,2,3])));
dt << new table variable("QQ", 42 );
dt << New Table Variable("TT", eval(num(:QQ) + 1));
wait(0);
dt << set table variable("QQ", 50);
if ( dt:TT == 51, show("success"), show("didn't quite work"));Re : Comment référencer une variable de table dans une variable de tableVoici un exemple simple.Votre code était proche, il fallait juste comprendre que toutes les variables de table sont des caractères, et aussi, tout ce que vous devez faire pour référencer une variable de table est d'utiliser :QQ, puisque le dt est déjà l'objet du message.
names default to here(1);
dt=new table("Example", add rows(3),new column("Sample", values([1,2,3])));
dt << new table variable("QQ", 42 );
dt << New Table Variable("TT", num(:QQ) + 1);