/ / Matlab GUI: efficiente di variabili globali Vs handle - matlab, variabili globali, guida matlab, efficienza di elaborazione, handle

GUI Matlab: efficiente di handle Vs a variabile globale - matlab, variabili globali, guida matlab, efficienza di elaborazione, handle

È più efficiente trasferire i dati tra le funzioni tramite variabili globali rispetto alla struttura della GUI di Matlab?

Grazie, Myrick

risposte:

1 per risposta № 1

Solo per integrare le risposte di "S e Lucius" di Pariah, se intendi distribuire la tua GUI come applicazione autonoma, scoprirai probabilmente che è una cattiva idea usare variabili globali / persistenti.

Ovviamente ci sono alcune soluzioni alternative che puoi usare ma, come menzionato da Pariah, è buona norma limitare l'uso delle variabili globali sebbene semplifichino notevolmente lo sviluppo del codice.


0 per risposta № 2

Dipende principalmente da cosa vuoi fare.

Intendo normalmente faccio variabili globali per la prototipazione (ed è una pratica scorretta impostare tutte le variabili su globali per sicurezza e per motivi di prestazioni).

Ma poi di nuovo quando si passano variabili viagestori, è una buona pratica che dovresti davvero approfondire perché non solo ti dà una migliore visione dei dati che stai passando, ma ti costringe a buone pratiche di codifica per aiutarti nel debugging e nel lavoro futuro che potresti estendere al tuo lavoro attuale.

(Questo è più un suggerimento ma anche se si impostano variabili globali può creare incubi durante il debug del codice).


0 per risposta № 3

a seconda di quanto sono grandi i tuoi dati, potresti vedere differenze in termini di velocità.

il motivo principale è (correggimi, se sbaglio):

  • handle-struct è sempre una copia (call-by-value) -> big data-> bassa velocità; inoltre, è necessario riassegnare le modifiche; le variabili globali sono chiamate per riferimento

ma ovviamente mantenendo un codice con moltile variabili globali possono diventare più complicate. Se qualcuno ha il tempo: crea un semplice test delle prestazioni, che confronta entrambe le varianti con diverse dimensioni di dati passati :)