2012-09-29 19 views
22

Ho l'abitudine di iniziare tutti i miei script MATLAB con clear all; close all; clc. Mentre è stata una linea molto utile, non appena viene eseguita, cancella tutti i miei punti di interruzione. C'è un modo semplice per evitarlo?Come ripristinare i breakpoint in MATLAB dopo "cancella tutto"?

+2

Immagino che il modo più semplice sarebbe usare 'clear' piuttosto che' clear all'. –

risposta

22

Ho risolto questo problema creando uno script che salva e ricarica i punti di interruzione. Per comodità, puoi persino inserirlo in una scorciatoia.

%# store breakpoints 
tmp = dbstatus; 
save('tmp.mat','tmp') 

%# clear all 
close all 
clear classes %# clears even more than clear all 
clc 

%# reload breakpoints 
load('tmp.mat') 
dbstop(tmp) 

%# clean up 
clear tmp 
delete('tmp.mat') 
+0

Grazie! Penso di aver capito la maggior parte della soluzione. Cosa fa la riga 'dbstop (tmp)'? –

+0

Ho avuto ancora una domanda: come metterla in una scorciatoia? –

+2

@ShashankSawant: 'dbstop (tmp)' imposta i punti di interruzione memorizzati nella variabile 'tmp'. Per metterlo in una scorciatoia, cerca dove dice "nuovo collegamento" nell'interfaccia utente di Matlab e copia o incolla la soluzione lì, oppure crea uno script e scrivi il nome dello script in cui digiti il ​​codice da eseguire sull'esecuzione della scorciatoia. – Jonas

8

clear all è un martello pesante. Ad esempio, scarica anche tutto il codice MATLAB analizzato già in memoria. Un semplice clear o one of the other options è in genere una scelta migliore e non cancella i punti di interruzione.

0

Ho avuto lo stesso problema: dopo aver eseguito il mio codice, tutti i punti di interruzione sono stati cancellati. Alla fine ho scoperto che è possibile ripristinare gli ultimi punti di interruzione facendo clic su "Imposta/cancella i punti di interruzione" (tastiera F12).

Problemi correlati