2013-06-28 13 views
8

Ho il seguente problema: nel mio codice MATLAB io uso dichiarazioni comeDisallow Matlab per prendere fuoco automaticamente

figure(1) 

cambiare cifra destinazione per alcuni dati. Il problema è che dopo questo MATLAB prendere il focus del sistema sulla finestra con questa figura.

Quando eseguo un grande script in background e provo a fare smt sul mio computer, Matlab si concentra sempre su se stesso e non posso fare smt normalmente.

C'è un wat per impedire a Matlab di farlo? Sto lavorando su Linux Ubuntu.

Grazie in anticipo.

+0

possibile duplicato di [Inhibit Matlab Window Focus Stealing] (http://stackoverflow.com/questions/8488758/inhibit-matlab-window-focus-stealing) – Bull

risposta

2

È possibile eseguire questa operazione rendendo invisibile la figura (visibile) alla creazione e rendendola visibile solo quando si desidera visualizzarla.

Ad esempio:

f = figure('Visible', 'off'); %create an invisible figure 
plot(rand(1,15)); %plot some stuff to it. 

saveas(f, 'test.png', 'png'); %write out the image as a png 
close(f); %destroy the figure 

alternativa: set (f, 'Visible', 'a'); % mostra una figura precedentemente invisibile

Nota, se si salva la figura come file Matlab .fig, si salverà anche il fatto che è invisibile, il che può creare confusione.

+0

A proposito, in Linux ho appena spostato la schermata MATLAB su un altro spazio di lavoro –

+0

Hah! Intelligente. Peccato che non avrebbe funzionato per Windows. Sarebbe bello se potessimo in genere revocare l'autorizzazione per programmi specifici per rubare l'attenzione. – Alan

+0

@ Shaun314 grazie per aver individuato l'errore di battitura – Alan

0

Questo è testato, ma basato sul collegamento alla figura intelligente, sembra che tutto quello che dovete fare per rendere la vostra figura non è rubare attenzione è questo:

set(0, 'CurrentFigure', h); 

E tra l'altro, se non lo sapessi, lo 0 sta per "root"

Problemi correlati