Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ Μάθημα 2 Εισαγωγή –...
description
Transcript of Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ Μάθημα 2 Εισαγωγή –...
Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
Μάθημα 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 και είναι ελεύθερα λογισμικά
Πως δουλεύει…??
Command Window
Παράθυρο εντολών
Command History
Αρχείο εντολών
Current Directory – Φάκελος εργασίας
Workspace – Περιβάλλον εργασίας
Matlab• Τα προγράμματα της
Matlab είναι αρχεία κειμένου (text) με την κατάληξη .m
• Μπορούν να δημιουργηθούν με ένα απλό editor ή καλύτερα με τον editor της Matlab (εντολή 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 – προβάλει τις τιμές στο παράθυρο εντολών
• Min
• Max
• Median
• Mean
• Sum
• Diff
Εντολές της Matlab συνέχεια….
Βασικές εντολές της 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 + 37-534*2121234/57862^5
ans = 5ans = 2ans = 7208ans = 0.2173ans = 32
Το τελικό αποτέλεσμα αποθηκεύεται στην default μεταβλητή ans αν δεν το αναθέσουμε αλλού
a = sqrt(2)
a = 1.4142 Ανάθεση στη μεταβλητή a
Πως εισάγουμε μεταβλητές..?
b = a, pi, 2 + 3i
b = 1.4142ans = 3.1416ans = 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 9e = 1 2 3 4 5 6 7 8 9 f = 1 2 3 4 5 6 7 8 9
Διαφορετική αρχικοποίηση – Ίδια διανύσματα
g = 0:2:10f(3)f(2:7)f(:)
g = 0 2 4 6 8 10ans = 3ans = 2 3 4 5 6 71 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…..!!!
Γρήγορα στο Εργαστήριο….