Transcript Matlab_1
Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ Μάθημα 2 Εισαγωγή – Βασικές αρχές Matlab Συναρτήσεις και Προγράμματα σε Matlab
Σε τι είναι καλή η Matlab ;
• Ολοκληρωμένο Περιβάλλον ανάπτυξης • Διερμηνευόμενη γλώσσα (Interpreter) τα λάθη εντοπίζονται πιο εύκολα • Υψηλές επιδόσεις • Σχεδιασμένη για πράξεις με πίνακες • Πολλές εφαρμογές – Toolboxes • Ειδικό πρόγραμμα για δημιουργία GUI (Graphical User Interface) – Αντικειμενοστραφής προγραμματισμός • Εκδόσεις σε διάφορα λειτουργικά (Windows, Unix, Mac) • Ευκολία μάθησης
Και σε τι δεν είναι … ;
• Η MATLAB δεν είναι μια γενική γλώσσα προγραμματισμού, όπως η C, Java κλπ • Η MATLAB σαν interpreter είναι πιο αργή σε σχέση με τους compilers…π.χ.C++) • Η MATLAB είναι σχεδιασμένη για επιστημονικούς σκοπούς και γι αυτό δεν είναι κατάλληλη για π.χ. επεξεργασία κειμένου
Περισσότερα για τη Matlab…
• Matlab:
Mat
rix
Lab
oratory • Βασική δομή της Matlab είναι ο Πίνακας • Μεγάλη οικογένεια toolboxes (συλλογές εξειδικευμένων συναρτήσεων), π.χ.
– PDE Toolbox – Mapping Toolbox – Statistics Toolbox – Image Processing Toolbox – Signal Processing Toolbox…κ.α.
Ιστορικά στοιχεία…
• 1970’s : Οι Jack Little και Cleve Moler γράφουν την πρώτη έκδοση σε Fortran • Αρχικά είχε εκπαιδευτική χρήση • Έγινε εμπορική το 1984, Mathworks • Σήμερα, γραμμένη σε C, C++ και Java
Εναλλακτικές λύσεις….??
• Υπάρχουν….!
– Maple – Mathematica – Octave (GNU) – Scilab • Τα Scilab και Octave παρουσιάζoυν ιδιαίτερο ενδιαφέρον, μοιάζουν αρκετά με MATLAB και είναι ελεύθερα λογισμικά
Πως δουλεύει…??
Current Directory – Φάκελος εργασίας Workspace – Περιβάλλον εργασίας Command History Αρχείο εντολών Command Window Παράθυρο εντολών
Matlab
• Τα προγράμματα της Matlab είναι αρχεία κειμένου (text) με την κατάληξη Matlab (
.m
• Μπορούν να δημιουργηθούν με ένα απλό editor ή καλύτερα με τον editor της εντολή edit) • O editor της Matlab χρησιμοποιεί syntax highlighting που διευκολύνει την δημιουργία κώδικα
Matlab
• Η Matlab χρησιμοποιεί Scripts και Functions • Script είναι μια σειρά από εντολές σε ένα αρχείο κειμένου • Function είναι αυτόνομα προγράμματα • Βασικό μειονέκτημα των scripts είναι ότι δεν μπορούν να μπορούν να δεχθούν ορίσματα….
Βασικές εντολές της Matlab
• Help………..
• Quit – Προσοχή..
• Pwd - μας επιστρέφει τον φάκελο στον οποίο δουλεύουμε… • Who • Whos – επιστρέφουν τις μεταβλητές που έχουν φορτωθεί στο περιβάλλον εργασίας
Βασικές εντολές της Matlab
συνέχεια….
• dir ή ls μας επιστρέφoυν την δομή του καταλόγου στον οποίο δουλεύουμε • cd – αλλαγή φακέλου • Who • Whos – επιστρέφουν τις μεταβλητές που έχουν φορτωθεί στο περιβάλλον εργασίας
Βασικές εντολές της Matlab συνέχεια….
• Clear - σβήνει τη μνήμη • Load - φορτώνει δεδομένα • Path – προβάλει το path • disp – προβάλει τις τιμές στο παράθυρο εντολών
Εντολές της Matlab συνέχεια….
• Min • Max • Median • Mean • Sum • Diff
Βασικές εντολές της Matlab
συνέχεια….
• Αποθήκευση session και μεταβλητών .mat
– save mysession ή – save mysession var1 var2 … • Ανάκτηση session – load mysession • save > clear > whos > load > whos
Κοινές προγραμματιστικές δομές
• Έλεγχος ροής (if, switch) • Δομές επανάληψης (for, while) • Εντολές διακοπής επανάληψης (break, continue)
Δομή if…elseif…else…end
• • • • • • • If A > B ‘greater’ elseif A < B ‘less’ elseif A = = B ‘equal’ else error(‘Unexpected situation’) • end
Λογικοί και σχεσιακοί τελεστές
• • Σχεσιακοί τελεστές (μεταξύ arrays) < > == ( ισότητα) ( μικρότερο) ( μεγαλύτερο) ~= ( <= ( >= ( ανισότητα) μικρ. ή ίσο) μεγαλ. ή ίσο) • • Λογικοί τελεστές | ~ & (or) (not) (and)
Operators and special characters.
:
χωρίζει στήλες πινάκων
;
χωρίζει γραμμές πινάκων π.χ. >> a=[1:2:3:4] a = 1 2 3 4 >> a=[1;2;3;4] a = 1 2 3 4
Πως εισάγουμε μεταβλητές..?
Είσοδος Έξοδος Σχόλια
2 + 3 7-5 34*212 1234/5786 2^5 ans = 5 ans = 2 ans = 7208 ans = 0.2173
ans = 32 Το τελικό αποτέλεσμα αποθηκεύεται στην default μεταβλητή ans αν δεν το αναθέσουμε αλλού a = sqrt(2) a = 1.4142
Ανάθεση στη μεταβλητή a
Πως εισάγουμε μεταβλητές..?
b = a, pi, 2 + 3i c = sin(pi) b = 1.4142
ans = 3.1416
ans = 2.0000 + 3.0000i
c = 1.2246e-016 Τα κόμματα μπορούν να διαχωρίζουν διαφορετικές εντολές στην ίδια γραμμή d = [1 2 3 4 5 6 7 8 9] e = [1:9] f = 1:9 d = 1 2 3 4 5 6 7 8 9 e = 1 2 3 4 5 6 7 8 9 f = 1 2 3 4 5 6 7 8 9 g = 0:2:10 f(3) f(2:7) f(:) g = 0 2 4 6 8 10 ans = 3 ans = 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 Διαφορετική αρχικοποίηση – Ίδια διανύσματα Χρήσεις του τελεστή :
Όλα είναι πίνακες….
• Πως εισάγουμε δεδομένα πινάκων..?
• A=[1 2 3; 4 5 6; 7 8 9]
>> A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> whos Name Size Bytes Class A 3x3 72 double array Grand total is 9 elements using 72 bytes
Προσοχή στο… ;
• O χαρακτήρας ; αποτρέπει την απεικόνιση στο παράθυρο εντολών, αποτελεσμάτων ή δεδομένων, αν τοποθετηθεί στο τέλος της γραμμής εντολών.
• Επίσης μερικές εντολές είναι case sensitive…..!!!