Μάθημα 2 Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ Εισαγωγή – Βασικές αρχές Matlab Συναρτήσεις και Προγράμματα σε Matlab
Σε τι είναι καλή η Matlab ; Ολοκληρωμένο Περιβάλλον ανάπτυξης Διερμηνευόμενη γλώσσα (Interpreter) τα λάθη εντοπίζονται πιο εύκολα Υψηλές επιδόσεις Σχεδιασμένη για πράξεις με πίνακες Πολλές εφαρμογές – Toolboxes Ειδικό πρόγραμμα για δημιουργία GUI (Graphical User Interface) – Αντικειμενοστραφής προγραμματισμός Εκδόσεις σε διάφορα λειτουργικά (Windows, Unix, Mac) Ευκολία μάθησης
Και σε τι δεν είναι … ; Η MATLAB δεν είναι μια γενική γλώσσα προγραμματισμού, όπως η C, Java κλπ Η MATLAB σαν interpreter είναι πιο αργή σε σχέση με τους compilers…π.χ.C++) Η MATLAB είναι σχεδιασμένη για επιστημονικούς σκοπούς και γι αυτό δεν είναι κατάλληλη για π.χ. επεξεργασία κειμένου
Περισσότερα για τη Matlab… Matlab: Matrix Laboratory Βασική δομή της 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 Window Παράθυρο εντολών Command History Αρχείο εντολών
Matlab Τα προγράμματα της Matlab είναι αρχεία κειμένου (text) με την κατάληξη .m Μπορούν να δημιουργηθούν με ένα απλό editor ή καλύτερα με τον editor της Matlab (εντολή edit) O editor της Matlab χρησιμοποιεί syntax highlighting που διευκολύνει την δημιουργία κώδικα
Matlab Η Matlab χρησιμοποιεί Scripts και Functions
Βασικές εντολές της 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) == (ισότητα) ~= (ανισότητα) < (μικρότερο) <= (μικρ. ή ίσο) > (μεγαλύτερο) >= (μεγαλ. ή ίσο) Λογικοί τελεστές & (and) | (or) ~ (not)
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 b = 1.4142 ans = 3.1416 ans = 2.0000 + 3.0000i Τα κόμματα μπορούν να διαχωρίζουν διαφορετικές εντολές στην ίδια γραμμή c = sin(pi) 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…..!!!
Γρήγορα στο Εργαστήριο….