Ho scritto un programma MATLAB che crea al volo funzioni MATLAB personalizzate e le avvia in altre istanze MATLAB utilizzando il comando unix
. Io uso questo programma per automatizzare le analisi di neuroimaging fMRI (usando SPM8 per MATLAB), e tutto funziona bene. Tuttavia, MATLAB impone una lunghezza del nome della funzione di massimo 63 caratteri (namelengthmax
). Dato che ho bisogno di salvare due diversi timestamp in ciascun nome di funzione insieme al nome della funzione che lo ha creato (ho diverse funzioni che creano queste nuove funzioni utilizzate per l'analisi fMRI multithread), 63 caratteri sono piuttosto limitanti per i nomi di file come :Estensione della lunghezza massima dei nomi delle funzioni MATLAB
atf_2012_07_05_18_01_02_specify_1st_level_2012_07_05_18_10_15.m
In questo esempio atf
significa 'filettatura funzione analisi' (per separare dagli altri file con nomi simili), il primo timestamp identifica la corsa (un timestamp globale, in questo caso 5th di July 2012 alle 18:01:02), quindi c'è una stringa specify_1st_level
che identifica la funzione (in questo caso specify_1st_level.m
) che ha creato questa nuova funzione "analisi thread", e quindi la seconda volta stamp identifica questa nuova specifica "funzione thread di analisi" da altre nuove "funzioni thread di analisi" create per essere eseguite in altri thread (e per diversi argomenti di analisi o per analisi diverse) e che vengono eseguite contemporaneamente.
Il mio problema è il limite di caratteri di 63 caratteri per i nomi di funzione.
Mi rendo conto che avrei potuto scrivere i miei timestamp senza sottolineatura (_
), o di comprimerli, e posso fare i miei nomi delle funzioni più breve (ad es specify_1st_level.m
-.>sp1st.m
), ed inoltre ho potuto dividere le mie funzioni create al volo in diverse sottocartelle create al volo, ad es. con timestamp globali. Modifica: Oppure potrei anche creare un hash dell'intero nome di funzione e usare l'hash come nome di una funzione invece della stringa leggibile dall'uomo presentata sopra.
Tuttavia, ho intenzione di aggiungere più dati nei nomi di "funzioni thread di analisi" (uno o più valori hash di diversi set di parametri di analisi utilizzati in questa analisi per identificare analisi identiche di tempi diversi). Se possibile, mi piacerebbe mantenerlo piacevole e semplice (i nomi delle funzioni leggibili dall'uomo aiutano nel debug delle "funzioni thread di analisi" create al volo).
Quindi, c'è un modo per estenderenamelengthmax
? Sto eseguendo MATLAB R2012a in Linux. Sono anche felice di sentire altri modi per risolvere questo problema.
Sono abbastanza sicuro che Matlab lo imposta come una cosa codificata. Puoi guardare 'namelengthmax' dato che è ciò che imposta il massimo. Dubito che possa essere cambiato comunque. –