12
votes

Pourquoi cela ne fonctionnera-t-il pas? Dynamique dans une sélection

OK, je fais cela: xxx

puis je crée le curseur: xxx

et ça retournera toujours vide ensemble! Pourquoi!

mise à jour L'objectif est d'avoir le changement défini comme je déplace le curseur.


0 commentaires

3 Réponses :


2
votes

Je pense que vous voulez laisser "dynamique" hors de la sélection. Cela semble fonctionner quand je joue avec elle:

In[12]:= q = 3

Out[12]= 3


In[13]:= (# > q) &[10]

Out[13]= True


In[14]:= (# > Dynamic[q]) &[10]

(* what you see on the screen looks like an evaluation that is held or something *)
Out[14] = 10 > 3

(* but the full form, which is conveniently what gets copied to the clipboard for
   pasting into this answer, is actually this! *)
Out[14]= 10 > \!\(\*
DynamicBox[ToBoxes[$CellContext`q, StandardForm],
ImageSizeCache->{7., {1., 8.}}]\)


2 commentaires

Eh bien, vous définissez X à 3, sans utiliser le curseur, et réjouissez-vous parce que le curseur se déplace. Maintenant, cela pourrait être intéressant, mais l'objectif, ou l'espoir de mon expérimentation était de changer l'ensemble, car je glisse le curseur.


Si vous réévaluez l'instruction SELECT, sans la «dynamique», vous obtenez un nouvel ensemble. Si vous voulez que le poste change tout seul ... Je ne sais pas!



32
votes

La clé est de N'oubliez pas que la dynamique ne contrôle rien de l'évaluation directement. Ce qu'il fait est de créer une place sur l'écran qui a des propriétés d'évaluation.

Si, par exemple, vous deviez évaluer les éléments suivants dans une nouvelle mathématica Session ... P>

Row[{
    Slider[Dynamic[q], {1, 20}],
    Dynamic[myset = Select[Range[1, 20], # > q &]; ""]
}]


0 commentaires

1
votes

Vous voulez que l'intégralité de l'expression initiale SELECT est dynamique, car vous souhaitez mettre à jour le sous-ensemble sélectionné chaque fois que la valeur de q change. Vous pouvez le faire en déplaçant le dynamique à l'extérieur. Essayez ceci: xxx


0 commentaires