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…..!!!

Γρήγορα στο Εργαστήριο….