Ενα script(άκι) για το Matlab

Πριν το βάψεις μπλε και το ρίξεις στη θάλασσα γιατί δεν ρίχνεις μια ματιά εδώ;

Συντονιστές: kostas213, markelos

Απάντηση
Άβαταρ μέλους
remilt
Δημοσιεύσεις: 95
Εγγραφή: Δευ Δεκ 11, 2006 1:14 pm
Real Name: Καραμανλής Μίλτος
Gender: Male
Τοποθεσία: Αθήνα

Ενα script(άκι) για το Matlab

Δημοσίευση από remilt »

Loipon exo ena problima, xriazome ena scriptaki grammeno se matlab pou na kanei export kati arxiakia alla logo piesis xronou (kai asxetosinis) den mporo na to psakso monos, an mporei kapoios na boithisei tha einai theos!
Exo mia seira apo 100 (peripou) arxeia (.mat) ta opoia periexoun to kathena 6-7 metablites. Thelo na grapso ena script to opoio na diabazei ena ena ta .mat arxia kai gia to kauena na kanei export tis times ton metqabliton se ena .dat arxio (kai txt tha ekane) me ascii kodikopoihsi se stiles diaxorismenew me TAB oste an to .dat to anoikso me excel na anagnorisei ta dedomena os aftousies stiles.
px an to 001.mat arxeio exei tis metablites t=[1,2],x=[9,8],y=[5,4] to script na dimiourgei to 001.dat arxeio me periexomena

Κώδικας: Επιλογή όλων

t   x   y   
1   9   5
2   8   4
kai to parapano gia kathe .mat arxeio sto ipo epeksergasia folder.
Τελευταία επεξεργασία από το μέλος remilt την Πέμ Ιούλ 02, 2009 11:55 am, έχει επεξεργασθεί 1 φορά συνολικά.
Άβαταρ μέλους
LocknLoad
Forum Administrator
Forum Administrator
Δημοσιεύσεις: 2250
Εγγραφή: Κυρ Οκτ 07, 2007 5:34 pm

Re: Ena scriptaki sto matlab...

Δημοσίευση από LocknLoad »

Για να φορτωσεις

Κώδικας: Επιλογή όλων

% Read files mat1.mat through mat20.mat
for k = 1:20
  matfilename = sprintf('mat%d.mat', k);
  matdata = load(matfilename);
end
Για να σωσεις

Κώδικας: Επιλογή όλων

fname = 'foobar';
save(fname, 'variable');
Αυτο που ζητας στα 2 πρωτα ετη δεν το'χουμε κανει. Δεν ξερω κατα ποσο να γινεται στα επομενα. Ψαχνεις για καποιον που ξερει και μαλλον απο τον τροπο που τα ζητας δεν θα σε βοηθησει. Τα παραπανω τα βρηκα μετα απο περιπου 10 λεπτα στο google το οποιο με εστειλε εδω
Ναι, [you] σε παρακολουθώ!

Εικόνα


@[you]
Εικόνα
Άβαταρ μέλους
remilt
Δημοσιεύσεις: 95
Εγγραφή: Δευ Δεκ 11, 2006 1:14 pm
Real Name: Καραμανλής Μίλτος
Gender: Male
Τοποθεσία: Αθήνα

Re: Ενα script(άκι) για το Matlab

Δημοσίευση από remilt »

Ok να είσαι καλά για την απάντηση θα το δοκιμάσω και θα δώσω feedback για το αποτέλεσμα.
Δεν το χρειάζομαι για μάθημα της σχολής μία φίλη μου το θέλει για να επεξεργαστεί κάποια πειραματικά δεδομένα.
Άβαταρ μέλους
remilt
Δημοσιεύσεις: 95
Εγγραφή: Δευ Δεκ 11, 2006 1:14 pm
Real Name: Καραμανλής Μίλτος
Gender: Male
Τοποθεσία: Αθήνα

Re: Ενα script(άκι) για το Matlab

Δημοσίευση από remilt »

Λοιπόν τελικά κατέληξα στο παρακάτω script το οποίο κάνει την δουλειά του μία χαρά:

Κώδικας: Επιλογή όλων

% Καθαρίζω το workspace (είναι μία καλή συνήθεια)
clear all
% Η κύρια λούπα (και μοναδική) του scriptaκίου διατρέχει τα αρχεία του φακέλου
for k = 0:72
% Ανάθεση σε μεταβλητή το string του input filename με την αντικατάσταση %02.0f για σταθερού 
% μήκους "2" αριθμό γεμίζοντας με μηδενικά στα αριστερά για να "πιάσουμε" τα αρχεία που 
% περιέχουν 03, 04 κτλ
	matfilename = sprintf('file%02.0f.mat', k);
% Φορτώνουμε στο workspace τις μεταβλητές που είναι αποθηκευμένες το αρχείο εισόδου του 
% συγκεκριμένου στιγμιότυπου 
	load(matfilename);
% Ανάθεση σε μεταβλητή το string του output filename
	datfilename = sprintf('file%02.0f.dat',k);
% Ανάθεση σε μεταβλητή ένα string το οποίο θα αποτελέσει τις επικεφαλίδες των προς έξοδο   
% διανυσμάτων χωρισμένες με tab
	headers=sprintf('var1\tvar2\tvar3t\tvar4\tvar5\tvar6\tvar7\tvar8');
% Σχιματίζουμε τον πίνακα που περιέχει τα δεδομένα μας
	varlist=[var1 var2 var3 var4 var5 var6 var7 var8];
% Δημιουργούμε το αρχείο εξόδου το οποίο "γεμίζει" πρώτα με τις επικεφαλίδες και ύστερα 
% με τα δεδομένα     
    dlmwrite(datfilename,headers,'delimiter','');
    dlmwrite(datfilename,varlist,'delimiter','\t','-append');
	clear all;
end
Τελικά η εντολή sprintf μου έλυσε τα χέρια ευχαριστώ :!: :!: :!:
Απάντηση

Επιστροφή στο “Υπολογιστές - Εφαρμογές - Internet”