Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellaDopo aver creato le prime due variabili, vorrei fare in modo che le mie variabili angoloRefY e angoloRefX siano compensate da zeroX e zeroY da un numero statico. Ho provato a farlo in diversi modi, come puoi vedere di seguito.

L'unico modo per produrre un numero era questo script, ma poi la variabile diventa 6 invece di QQ+1, quindi non sono ancora collegati.
dt << Set Table Variable("TT", dt:QQ + 1);Qualcuno sa come questo potrebbe essere fatto? Idealmente zeroX = un numero, zeroY = un numero, angoloRefX = zeroX + un numero e angoloRefY = zeroY + un numero come riferimento dinamico.
Re: Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellapotresti sempre semplicemente gettare la variabile nello spazio dei nomi globale e fare riferimento a quello.
Re: Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellaBene, ecco qua. Se può memorizzare solo valori stringa, sembra abbastanza chiaro che non potrò avere un riferimento dinamico. L'esecuzione dello script della tabella ha senso. È anche solo un clic in più, non male. Grazie per l'aiuto!!Re: Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellaJim,
Grazie per il suggerimento sulle variabili di tabella che sono caratteri. Questo è un preciso problema, strappati i capelli se non lo sai, in cui imbatterti.
un'altra piccola aggiunta.se, dt:QQ="51"; quindi racchiudendo dt:QQ, in questo modo, num(dt:QQ) restituirà 51 anziché "51". Ma se dt:QQ non è numerico, restituirà il valore mancante.
L'alternativa a questo, che funzionerà,
if ( dt:TT == "51", show("success"), show("didn't quite work"));
è qualcosa del genere, che funzionerà se dt:TT è numerico
if ( num( dt:TT ) == 51, show("success"), show("didn't quite work"));Re: Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellaUna variabile di tabella è semplicemente una stringa di caratteri salvata.Anche se il tuo valore QQ avesse funzionato, la tua dichiarazione IF non potrebbe mai essere vera.
if ( dt:TT == 51, show("success"), show("didn't quite work"));
dt:TT non può mai avere il valore 51. Tutte le variabili di tabella finiscono come stringhe di caratteri, quindi l'istruzione IF se mai dovesse funzionare, dovrebbe essere scritta come:
if ( dt:TT == "51", show("success"), show("didn't quite work"));
Ecco la documentazione della Guida allo scripting
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.
Potresti fare quello che vuoi usando uno script di tabella, ma dovresti prima impostare la variabile di tabella QQ e quindi eseguire lo script di tabella che aggiornerebbe TT
Re: Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellaCiò crea un offset statico, avrei dovuto essere più chiaro sul fatto che l'obiettivo è un offset dinamico. Ad esempio, se QQ viene riassegnato a 43, l'obiettivo è che TT si risolva a 44 da solo.
Ecco un adattamento del tuo codice che dovrebbe stampare se la variabile è effettivamente dinamica o meno.
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: Come fare riferimento a una variabile di tabella all'interno di una variabile di tabellaQui c'è un semplice esempio.Il tuo codice era vicino, serviva solo per capire che tutte le variabili di tabella sono caratteri e inoltre, tutto ciò che devi fare per fare riferimento a una variabile di tabella è utilizzare :QQ, poiché dt è già l'oggetto del messaggio.
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);