Ilaria90 Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 Ciao a tutti. Ho una quantità di dati impressionate su excel (circa 52000 righe per 66 colonne) e vorrei poter aprire questa matrice gigante su matlab. Il problema è che i decimali sono separati con la virgola e matlab li vuole con il punto. C'è uno script che posso inserire su matlab che mi converta direttamente tutte le virgole in punti (dato che ho anche altre cartelle di dati simili)? oppure dev per forza convertirle su Excel? Link al commento Condividi su altri siti Altre opzioni di condivisione...
167-761 Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 Hai provato a modificare i formati in "americano" da Preferenze di Sistema... e a salvare da Excel? Dovresti ritrovarti i punti! Link al commento Condividi su altri siti Altre opzioni di condivisione...
mivec Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 Puoi usare la funzione 'find&replace', gli dici di cercare le virgole e cambiare col i punti e poi scegli replace all. Puoi farti uno script che legga le virgole e le trasformi in punti ma devi scorrere tutta la matrice ed inizia a diventare lentina la cosa in termini di tempo di calcolo. Oppure in Ecxel puoi selezionare tutte le celle (prima casellina in alto a sinistra senza lettere né numeri) e formattare con i punti al posto delle virgole. Io ti consiglio di farlo da Matlab così non modifichi il file originale per ogni evenienza. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Isamuell Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 In effetti, qua dice di usare i punti: http://www.unibas.it/utenti/dinardo/exctomat.pdf Non conosco bene Matlab, ma credo che ci siano delle specifiche funzioni d'importazione. Il rischio che corri è che ti vengano tolti i decimali. A quel punto moltiplica o dividi tutta la matrice... Oppure, devi agire dal text editor, trasformando le virgole in punti. Se trasformi in csv da Excel hai però un problema di disambiguazione, perché ci sono virgole per i campi e virgole per i decimali. Sostituisci allora ',' con ',,' Poi sostituisci ',' con '.' Infine, sostrituisci '..' con ',' Non so se a quel punto la matrice è in qualche modo digeribile da MatLab... Link al commento Condividi su altri siti Altre opzioni di condivisione...
Ilaria90 Inviato 14 Ottobre 2013 Autore Segnala Condividi Inviato 14 Ottobre 2013 si ok, ma come si fa? come posso creare uno script che mi legga questa quantità di dati da excel e me la salvi in matlab in modo che io ci possa poi lavorare sopra? e successivamente come posso inizializzare una funzione che mi converta le virgole in punti? si usa la csv read? se si, in che modo? Link al commento Condividi su altri siti Altre opzioni di condivisione...
maCrobo Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 Per aprire il file in MATLAB, puoi fare così. In pratica ti salvi il file Excel come un file di Testo e poi lo apri da MATLAB con i vari comandi. Per quanto riguarda il cambio dei punti con la virgola, se non hai provato a farlo direttamente su Excel, dove credo che si possa impostare il formato delle celle in modo che il separatore sia il punto invece della virgola, allora puoi are un piccolissimo programma in MATLAB e dirgli di cambiarti le "," con i "." tramite un banale for loop. Oppure, dato che hai il Mac e c'è la libreria Python sul Mac, potresti accedere al Terminale e attivare Python e scrivere un banale for loop in Python, nel caso conoscessi Python. Il Mac è come un televisore, quando ti serve lo accendi, lo usi, te lo godi e, quando ti sei stancato, lo spegni. Un PC Windows è come se ti fossi preso il cane: gli devi togliere le pulci, lavarlo, pettinarlo e, per ricompensa, se per una volta ti dimentichi di portarlo in bagno, te la farà in casa. [cit.] Link al commento Condividi su altri siti Altre opzioni di condivisione...
167-761 Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 Le funzioni di conversione sono facili, ma possono portarti in casa potenziali pasticci. Ti ho proposto un approccio più semplice e diretto. Forse non ho ben inquadrato il problema. Hai un foglio di calcolo con molti numeri decimali. Giusti. Excel te li presenta con la virgola per separare i decimali, ed è coerente con il paese Italia, qui da noi si usa la virgola. Se nelle Preferenze di Sistema > Internazionale > Formati (questo sul mio OSX 10.4, sul tuo vai a cercare "Formati"), imposti il paese USA, vedrai che lo stesso foglio Excel te lo presenterà con i punti per separare i decimali. Senza pasticciare. Credo che Matlab non tenga conto di queste impostazioni paese, e pretenda sempre il punto. Ma appunto da Excel si puo' facilmente presentare il foglio con i punti. Ci hai provato? Link al commento Condividi su altri siti Altre opzioni di condivisione...
maCrobo Inviato 14 Ottobre 2013 Segnala Condividi Inviato 14 Ottobre 2013 Altrimenti puoi anche fare così: selezioni tutta la matrice piena di numeri in Excel, fai click destro > Formato, selezioni la voce Testo e poi clicchi su OK. Ora dovresti avere i numeri sulla sinistra delle celle a indicare che sono in formato Testo. A questo punto riselezioni l'intera matrice e vai su Modifica > Sostituisci... Qui, ti basta inserire cosa cercare e cosa sostituire. In questo modo hai fatto. Tutte l etue virgole passeranno ad essere dei punti (Ovviamente l'unica virgola che c'era all'inizio era quella per indicare le cifre decimali). Fatto questo puoi salvare il tutto secondo la procedura che ti ho detto prima. Il Mac è come un televisore, quando ti serve lo accendi, lo usi, te lo godi e, quando ti sei stancato, lo spegni. Un PC Windows è come se ti fossi preso il cane: gli devi togliere le pulci, lavarlo, pettinarlo e, per ricompensa, se per una volta ti dimentichi di portarlo in bagno, te la farà in casa. [cit.] Link al commento Condividi su altri siti Altre opzioni di condivisione...
Ilaria90 Inviato 15 Ottobre 2013 Autore Segnala Condividi Inviato 15 Ottobre 2013 ok grazie mille a tutti Link al commento Condividi su altri siti Altre opzioni di condivisione...
Ilaria90 Inviato 22 Ottobre 2013 Autore Segnala Condividi Inviato 22 Ottobre 2013 scusa l'ignoranza...allora accedendo a Lingua e Testo da Preferenze di Sistema posso scegliere tra Lingua, Testo, Regione e Sorgenti di Input...ho cambiato la lingua prioritaria nella prima opzione ma niente. Link al commento Condividi su altri siti Altre opzioni di condivisione...
167-761 Inviato 22 Ottobre 2013 Segnala Condividi Inviato 22 Ottobre 2013 Preferenze di Sistema... > Lingua e testo > Regione (mostra tutte le regioni) > USA e vedrai che compaiono i punti decimali. Sei una matricola? Link al commento Condividi su altri siti Altre opzioni di condivisione...
Ilaria90 Inviato 22 Ottobre 2013 Autore Segnala Condividi Inviato 22 Ottobre 2013 non ho l'opzione americano...però ho inglese: è la stessa cosa? no, sono al quarto anno ma ho il mac da poco e non ho mai usato matlab prima no ok, da inglese ho stati uniti o stati uniti pc...ora provo entrambi e vedo se risolvo Link al commento Condividi su altri siti Altre opzioni di condivisione...
167-761 Inviato 22 Ottobre 2013 Segnala Condividi Inviato 22 Ottobre 2013 no ok, da inglese ho stati uniti o stati uniti pc...ora provo entrambi e vedo se risolvoMa scusa: il formato lo vedi immediatamente, nella casella "numeri" che c'è più sotto, no? incrociamo le dita... Secondo me ti apri il file direttamente da Matlab senza problemi. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Ilaria90 Inviato 22 Ottobre 2013 Autore Segnala Condividi Inviato 22 Ottobre 2013 il fatto è che non devo importarlo con import data ma con una fopen quindi non me lo riconosce Link al commento Condividi su altri siti Altre opzioni di condivisione...
167-761 Inviato 23 Ottobre 2013 Segnala Condividi Inviato 23 Ottobre 2013 Questo sembrava il tuo problema... Il problema è che i decimali sono separati con la virgola e matlab li vuole con il punto. C'è uno script che posso inserire su matlab che mi converta direttamente tutte le virgole in punti (dato che ho anche altre cartelle di dati simili)? oppure dev per forza convertirle su Excel? - E questo è un suggerimento risolutivo: Per aprire il file in MATLAB, puoi fare così. In pratica ti salvi il file Excel come un file di Testo e poi lo apri da MATLAB con i vari comandi. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Isamuell Inviato 24 Ottobre 2013 Segnala Condividi Inviato 24 Ottobre 2013 Infatti, io ho dato l'indicazione precedente, perché so che qualcuno passa dal formato csv (valori separati da virgola). Le preferenze di sistema sono appunto di sistema, cioè è un modo di presentare i valori, non di trasformarli... Link al commento Condividi su altri siti Altre opzioni di condivisione...
Ilaria90 Inviato 24 Ottobre 2013 Autore Segnala Condividi Inviato 24 Ottobre 2013 Purtroppo nonostante il cambio di lingua niente punti…farò in altro modo. Grazie lo stesso Link al commento Condividi su altri siti Altre opzioni di condivisione...
Isamuell Inviato 24 Ottobre 2013 Segnala Condividi Inviato 24 Ottobre 2013 Aridanghete... Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.