50 votes

Empêcher le vol du focus de la fenêtre Matlab

Existe-t-il un moyen de dire à Matlab de ne pas dérober le focus de la fenêtre (depuis un éditeur externe, tel que Emacs) avec des commandes graphiques telles que figure et plot . Cela augmenterait beaucoup ma productivité car je souhaite souvent poursuivre le développement du code pendant le (re) traitement des données.

43voto

PearsonArtPhoto Points 14639

Il est possible, l'astuce est de ne pas utiliser la figure de l'énoncé, mais de changer la figure directement. Cela va changer le tracé actif sans changer la mise au point. Généralement je fais quelque chose comme ceci:

function change_current_figure(h)
set(0,'CurrentFigure',h)

Ensuite, tous les de la figure(h) les déclarations doivent être modifiés pour change_curent_figure(h).

Remarque, cela est inclus dans la documentation matlab.

Il convient de noter que ceci ne fonctionne que si le chiffre est déjà créé. Si de nouvelles données vont être périodiquement créé, on pourrait créer des figures comme la très premières lignes de code, enregistrer les poignées, le traitement, puis de la parcelle à eux. Cet exemple serait de travailler. Remarque, le drawnow de commande de vidage de la mémoire tampon d'événements, de s'assurer que tous les chiffres sont tracées.

J'ai vu ce travail de 2007 à 2010, vous ne savez pas si la dernière ou des versions antérieures de soutien, même si je n'ai aucune raison de soupçonner qu'ils ne le font pas.

fig1=figure;
fig2=figure;
drawnow;
[a b]=do_complex_processing;
change_current_figure(fig1)
plot(a);
change_current_figure(fig2)
plot(b);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X