Σελίδα 1 από 1

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

Δημοσιεύτηκε: Πέμ Ιούλ 02, 2009 2:00 am
από 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.

Re: Ena scriptaki sto matlab...

Δημοσιεύτηκε: Πέμ Ιούλ 02, 2009 2:53 am
από 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 το οποιο με εστειλε εδω

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

Δημοσιεύτηκε: Πέμ Ιούλ 02, 2009 11:59 am
από remilt
Ok να είσαι καλά για την απάντηση θα το δοκιμάσω και θα δώσω feedback για το αποτέλεσμα.
Δεν το χρειάζομαι για μάθημα της σχολής μία φίλη μου το θέλει για να επεξεργαστεί κάποια πειραματικά δεδομένα.

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

Δημοσιεύτηκε: Κυρ Ιούλ 05, 2009 2:35 am
από 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 μου έλυσε τα χέρια ευχαριστώ :!: :!: :!: