Siamo in grado di creare un monitoraggio in tempo reale di una variabile in questo modo:.Creazione robusti monitor in tempo reale per le variabili
[email protected]@Row[{"x = ", Dynamic[x]}]
(Questo è più interessante e utile se x
sembra essere qualcosa di simile a $Assumptions
E 'così facile impostare un valore e poi dimenticarlo)
Sfortunatamente questo smette di funzionare se il kernel viene rilanciato (Quit[]
, quindi valutare qualcosa). La tavolozza non mostrerà più le modifiche nel valore di x
.
C'è un modo per farlo in modo che continui a funzionare anche attraverso le sessioni del kernel? Mi trovo a riavviare il kernel abbastanza spesso. (Se la palette risultante fa sì che il kernel da avviare automaticamente dopo Quit
va bene.)
Aggiornamento: Come accennato nei commenti, si scopre che la tavolozza cessa di lavoro solo se abbiamo smesso valutando Quit[]
. Quando si utilizza Evaluation -> Quit Kernel -> Local
, continuerà a funzionare.
Il tutorial Mma su [Memorizzazione e monitoraggio Palette Uniti] (http://reference.wolfram.com/mathematica/tutorial/StoringAndTrackingPaletteStates.html) discute alcuni metodi che dovrebbero essere utili. – kglr
@kguler L'ho già visto in precedenza, ma se ricordo bene, si tratta solo di memorizzare lo stato tra una sessione e l'altra (ad esempio 'DynamicModule'). Questo non è quello di cui ho bisogno. Si noti che il codice del programma (non stato) rimane lo stesso tra le sessioni e il monitor della variabile I è hardcoded. Tuttavia, dopo un riavvio del kernel, smette di funzionare, sia perché non si aggiorna dinamicamente, sia perché il '' $ CellContext' '' before 'x' nella tavolozza crea problemi (solo un'ipotesi, non ho potuto verificare o correggere questo – Szabolcs
Si noti che, se si chiude il kernel dal menu a discesa, Evauation-> Esci da kernel -> Locale, la tavolozza funzionerà ancora dopo aver avviato una nuova sessione. –