Dire che ho un file .mat con diverse istanze della stessa struttura, ognuna con un nome di variabile diverso.caricamento di una variabile da un file .mat in una variabile con un nome diverso
Voglio elaborare ogni istanza trovata in un file (che trovo usando whos('-file' ...
). Speravo che load
mi permettesse di specificare il nome di destinazione di una variabile in modo che non dovessi preoccuparmi delle collisioni (e quindi non dovevo scrivere codice auto-modificante a la eval
).
Il modo la forza bruta per fare questo sembra essere la creazione di una funzione di supporto che, usando le variabili con nomi che si spera non siano in contrasto con il contenuto .mat, fa qualcosa di simile:
- Does un
whos
su il file per ottenere i nomi contenuti. - Caricare iterativamente ogni struttura contenuta.
- Utilizza
eval
per assegnare la struttura caricata in, ad esempio, una matrice di celle (dove una colonna della matrice contiene i nomi della struttura del file .mat e una colonna corrispondente con il contenuto effettivo di ogni struttura dal file .mat).
Non c'è un modo più elegante per realizzare la stessa cosa?
bello. Ho ripetutamente osservato la pagina di manuale 'load' che si chiedeva" qual è il valore di ritorno di un 'array di struttura' che dovrebbe essere? " Adesso lo so! – jhfrontz