È più efficiente trasferire i dati tra le funzioni tramite variabili globali rispetto alla struttura della GUI di Matlab?
Grazie, Myrick
risposte:
1 per risposta № 1Solo 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 :)