Εισαγωγή στη Matlab. Πανεπιστήµιο Κρήτης. Ιστοσελίδα µαθήµατος:

Σχετικά έγγραφα
Εισαγωγή στη Matlab Επιστηµονικός Υπολογισµός Γ Έτος Σπουδών Κυριάκος Πετράκος

Τυπικές χρήσεις της Matlab

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011

Εισαγωγή στην Αριθμητική Ανάλυση

Συστήματα Αναμονής (Queuing Systems)

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

4. Εισαγωγή στο Matlab

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π.

Συνοπτικός οδηγός MATLAB & OCTAVE. (έως και συναρτήσεις) Ιωάννης Καλατζής 2018d

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ. Ξεκινώντας µε το MATLAB. Revised by Clinton Wolfe Original by David Hart. Μ. Βάβαλη και Τ.

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Αλληλεπίδραση με το Matlab

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος

Έναρξη Τερματισμός του MatLab

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

Χρονικές σειρές 4 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ

ΕΠΙΣΤΗΜΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΜΟΣ. Τσιριγώτης Γεώργιος

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.]

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Βασικά στοιχεία του MATLAB

Το παράθυρο έναρξης του Μatlab

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 14

4 η ΕΝΟΤΗΤΑ Μητρώα και συνθήκες στο MATLAB

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγή στους. Υπολογιστές

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 17

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Χρονικές σειρές 3 o μάθημα: Εισαγωγή στη MATLAB

Εισαγωγή στο GNU Octave/MATLAB

Εργαλεία Προγραμματισμού Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox

ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγικές έννοιες

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα...

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα...

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Σύστηµα επεξεργασίας πινάκων και συναρτήσεων τους για εφαρµογές αριθµητικής ανάλυσης και γραφικής παρουσίασης.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Χρονικές σειρές 2 o μάθημα: Εισαγωγή στη MATLAB

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB

Ηβασική δοµή δεδοµένων είναι ο πίνακας που δεν χρειάζεται να οριστεί η διάσταση του.

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2)

Εισαγωγή στον επιστημονικό προγραμματισμό 1 o Μάθημα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Εισαγωγή στο Matlab (μέρος β) Κολοβού Αθανασία, ΕΔΙΠ,

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ

Εισαγωγή στους Υπολογιστές

Εισαγωγικές σημειώσεις στο Matlab

Για τη δημιουργία ενός διανύσματος με στοιχεία από το 0 μέχρι το 20 με βήμα το 2 (χρησιμοποιείται συνήθως για διανύσματα χρόνου) δίνουμε

ΠΑΡΑΡΤΗΜΑ Α Εισαγωγή στο MATLAB

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab

Δομημένος Προγραμματισμός (ΤΛ1006)

Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Εισαγωγή στη γλώσσα προγραμματισμού C++

µέχρι και την Τρίτη και ώρα 22:30 1η Ασκηση ΑΜΕΣΟΙ ΜΕΘΟ ΟΙ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός σε Matlab για προβλήματα βελτιστοποίησης

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

Matlab functions. Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

6 η ΕΝΟΤΗΤΑ Δομές επανάληψης

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Εργαλεία προγραµµατισµού. Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox. ΤΨΣ 150 Ψηφιακή Επεξεργασία Εικόνας

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Εισαγωγή στο SAGE. Νίκος Νοδαράκης. 31 Οκτωβρίου 2010

Programming και Scripts

M files RCL Κυκλώματα

αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C)

Βασικά στοιχεία στο Matlab

Προγραµµατισµός Η/Υ. Δρ. Δ.Ν. Παγώνης. Καθηγητής Εφαρµογών. Τηλ: Τµήµα Ναυπηγών Μηχανικών ΤΕ, ΤΕΙ Αθήνας

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΠΙΣΤΗΜΟΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΜΟΥΣ

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

1. Εισαγωγή στο Sage.

Transcript:

Εισαγωγή στη Matlab Πανεπιστήµιο Κρήτης Τµήµα Μαθηµατικών Μάθηµα: Αριθµητική Ανάλυση Εαρινό Εξάµηνο 2007. Ιστοσελίδα µαθήµατος: http://www.math.uoc.gr/~chatzipa/ Εισαγωγή στη MATLAB 1

Τι είναι η Matlab ; Ολοκληρωµένο Περιβάλλον (PSE) Περιβάλλον ανάπτυξης ιερµηνευόµενη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρµογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Εισαγωγή στη MATLAB 2

Τυπικές χρήσεις της Matlab Αποδοτική υλοποίηση αλγορίθµων Επίλυση Ε Προσοµοίωση φαινοµένων Αριθµητική ανάλυση, γραµµική άλγεβρα Βελτιστοποίηση Ανάπτυξη λογισµικού (GUI) Επεξεργασία σηµάτων Εισαγωγή στη MATLAB 3

Τυπικές χρήσεις της Matlab (Συνέχεια...) Εµπορικές εφαρµογές Εισαγωγή στη MATLAB 4

Λίγη ιστορία 1970 s : Ο Cleve Moler γράφει την πρώτη έκδοση σε Fortran Αρχικά, εκπαιδευτική χρήση Έγινε εµπορική το 1984, Mathworks Σήµερα, γραµµένη σε C και Java Εισαγωγή στη MATLAB 5

Εναλλακτικές δυνατότητες; Maple Mathematica Octave (GNU) Scilab Γιατί χρησιµοποιούµε MATLAB; http://www.iecn.u-nancy.fr/~pincon/scilab/bench-scilab-matlab.html Εισαγωγή στη MATLAB 6

Τι χρειάζεται για να µάθω Matlab; Όρεξη Βασική εξοικείωση µε προγραµµατισµό Εξοικείωση µε γραµµική άλγεβρα lookfor <something> help <function_name> Εισαγωγή στη MATLAB 7

Στοιχεία της Matlab Matlab: Matrix Laboratory Βασική δοµή της Matlab είναι o πίνακας Εν γένει µιγαδικά στοιχεία Οικογένεια toolboxes (συλλογές εξειδικευµένων συναρτήσεων), π.χ. PDE Toolbox Statistics Toolbox Image Processing Toolbox http://www.mathworks.com/products/product_listing/index.html Εισαγωγή στη MATLAB 8

Περιβάλλον της Matlab Command Window Workspace: Μεταβλητές Command history Current directory Help Profiler Editor (>> edit ) Demos (>> demos) Εισαγωγή στη MATLAB 9

Εισαγωγή και έξοδος από τη Matlab Έναρξη του περιβάλλοντος Εµφάνιση της προτροπής >> Έξοδος: >> quit Έξοδος: >> exit Η έξοδος είναι καταστροφική! Εισαγωγή στη MATLAB 10

Σύνταξη Παραδείγµατα Είσοδος Έξοδος Σχόλια 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 Εισαγωγή στη MATLAB 11

b = a, pi, 2 + 3i c = sin(pi) eps d = [123456789 ] e = [1:9] f = 1:9 g = 0:2:10 f(3) f(2:7) f(:) b = 1.4142 ans = 3.1416 ans = 2.0000 + 3.0000i c = 1.2246e-016 ans = 2.2204e-016 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 4 6 8 10 ans = 3 ans = 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 Τα κόµµατα µπορούν να διαχωρίζουν διαφορετικές εντολές στην ίδια γραµµή Το eps είναι το έψιλον της µηχανής ιαφορετική αρχικοποίηση Ίδια διανύσµατα Χρήσεις του τελεστή : Εισαγωγή στη MATLAB 12

h = [1 2 3]; h' (nothing) ans = 1 2 3 Το ελληνικό ερωτηµατικό αποτρέπει την εµφάνιση του υπολογιζόµενου αποτελέσµατος. Η απόστροφος οδηγεί στο ανάστροφο πίνακα. h * h' h.* h h + h g = [ 1 2 3; 4 5 6; 7 8 9] g(2,3) g(3,:) g(2,3) = 4 Α([1:3],[2:4]) Α([1:3],:) ans = 14 ans = 1 4 9 ans = 2 6 8 g = 1 2 3 4 5 6 7 8 9 ans = 6 ans = 7 8 9 g = 1 2 3 4 5 4 7 8 9 Πολλαπλασιασµός πινάκων και πολλαπλασιασµός πινάκων στοιχείο προς στοιχείο (Χρήσιµο!) Εισαγωγή πίνακα. Πρόσβαση σε στοιχεία πίνακα. Προσοχή: Επιλογή στηλών και γραµµών! Εισαγωγή στη MATLAB 13

Είσοδος Έξοδος Σχόλια g^2 g.^ 2 ans = 30 36 42 66 81 96 102 126 150 ans = 1 4 9 16 25 36 49 64 81 Ύψωση πίνακα σε δύναµη και ύψωση στοιχείων πίνακα. Εισαγωγή στη MATLAB 14

A.K.Y στη Matlab IEEE Αριθµητική διπλής ακρίβειας s e f 1 2 12 13 64 Round-off: eps = 2-52 Υποστήριξη και single precision arithmetic Εισαγωγή στη MATLAB 15

Έλεγχος εξόδου (όχι υπολογισµών!) format Matlab: Αριθµητική διπλής/µονής ακρίβειας Απόσταση γραµµών : format compact/loose 15 ψηφία: format long 5 ψηφία: format short help format Εισαγωγή στη MATLAB 16

Μεταβλητές Κατάσταση session >> who (name) >> whos (name, size, bytes, class) Case sensitive! Εισαγωγή στη MATLAB 17

Πίνακες στη Matlab Built-in συναρτήσεις Απευθείας προγραµµατισµός Από.mat αρχεία Εισαγωγή στη MATLAB 18

Πίνακες στη Matlab Built-in δοµές µητρώων Input Output Comments rand(2) rand(2,3) zeros(2) ones(2) ans = 0.9501 0.6068 0.2311 0.4860 ans = 0.8913 0.4565 0.8214 0.7621 0.0185 0.4447 ans = 0 0 0 0 ans = 1 1 1 1 eye(2) ans = 1 0 0 1 hilb(3) ans = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 Τιµές οµοιόµορφα κατανεµηµένες Μηδενικά Ι (ταυτοτικός πίνακας) Πίνακας Hilbert (cond >> 1) Εισαγωγή στη MATLAB 19

Πίνακες στη Matlab (Συνέχεια...) Built-in δοµές µητρώων Input Output Comments randn(2,3) ans = -0.4326 0.1253-1.1465-1.6656 0.2877 1.1908 Τιµές κανονικά Κατανεµηµένες Α = sparse(n,n) toeplitz([1 2 3]) vander([1 2 3]) Α= All zero sparse: 3-by-3 ans = 1 2 3 2 1 2 3 2 1 ans = 1 1 1 4 2 1 9 3 1 Αραιή δοµή πίνακα οµή Toeplitz οµή Vandermonde Εισαγωγή στη MATLAB 20

Χειρισµός Πινάκων Παράθεση Αναδροµική κατασκευή πινάκων Έστω: a = [1 2; 3 4] a = 1 2 3 4 Εισαγωγή στη MATLAB 21

Χειρισµός Πινάκων (Συνέχεια...) Input Output [a, a, a] ans = 1 2 1 2 1 2 3 4 3 4 3 4 [a; a; a] ans = 1 2 3 4 1 2 3 4 1 2 3 4 [a, zeros(2); zeros(2), a'] ans = 1 2 0 0 3 4 0 0 0 0 1 3 0 0 2 4 Εισαγωγή στη MATLAB 22

Χειρισµός Πινάκων (Συνέχεια...) Απευθείας χειρισµός Με for loops for i=1:10, for j=1:10, t(i,j) = i/j; end end Ελληνικό ερωτηµατικό! Εισαγωγή στη MATLAB 23

Πράξεις µεταξύ των Πινάκων Α+Α Α-Α Α*Α (διάσταση!) Α/Β (Χ*Β = Α) Α\b (Ax = b).<operand> : Στοιχείο προς στοιχείο Εισαγωγή στη MATLAB 24

Βαθµωτοί Όλα είναι πίνακες (ακόµα και αν είναι 1 x 1)! help elfun (elementary functions) help elmat (elementary matrix functions) Εισαγωγή στη MATLAB 25

Βαθµωτοί Παραδείγµατα Είσοδος Έξοδος Σχόλια b=2 b=2 Βαθµωτός a + b a * b a ^ b a.^ b ans = 3 4 5 6 ans = 2 4 6 8 ans = 7 10 15 22 ans = 1 4 9 16 Στοιχείο προς στοιχείο Στοιχείο προς στοιχείο ύναµη! Στοιχείο προς στοιχείο Εισαγωγή στη MATLAB 26

ιανύσµατα size(a,1) = 1 ή size(a,2) = 1 Είσοδος Έξοδος Σχόλια v = [1 2 3] u = [3 2 1] v = 1 2 3 u = 3 2 1 lenght(v) Ans = 3 ιανύσµατα Μήκος v * u Error ιαστάσεις! v * u' ans = 10 Εσωτερικό γινόµενο dot(v,u) ans = 10 Εσωτερικό γινόµενο (dot) Εισαγωγή στη MATLAB 27

Συναρτήσεις Πινάκων Ενσωµατωµένες help matfun Είσοδος Έξοδος Σχόλια k = [16 2 3; 5 11 10; 9 7 6] eig(k) k = 16 2 3 5 11 10 9 7 6 Ans = 22.4319,11.1136, - 0.5455 Ιδιοτιµές rank(k) ans = 3 Τάξη det(k) ans = -136 Ορίζουσα Εισαγωγή στη MATLAB 28

Συναρτήσεις Πινάκων (Συνέχεια...) Είσοδος Έξοδος Σχόλια inv(k) [vec,val] = eig(k) s = svd(k) ans = 0.0294-0.0662 0.0956-0.4412-0.5074 1.0662 0.4706 0.6912-1.2206 vec = -0.4712-0.4975-0.0621-0.6884 0.8282-0.6379-0.5514 0.2581 0.7676 val = 22.4319 0 0 0 11.1136 0 0 0-0.5455 s = 23.5497 11.2316 0.5142 Αντίστροφο Ιδιοδιανύσµατα, Ιδιοτιµές Ιδιάζουσες τιµές Εισαγωγή στη MATLAB 29

Γραµµικά συστήµατα Αx = b x = A \ b [L, U]=lu(A) chol(a) cond(a) qr(a) svd(a) ή svds(a) Εισαγωγή στη MATLAB 30

Αποθήκευση Πινάκων Αποθήκευση session και µεταβλητών.mat save mysession ή save mysession var1 var2 Ανάκτηση session load mysession save > clear > whos > load > whos Εισαγωγή στη MATLAB 31

Προγραµµατισµός στη Matlab M-files (κώδικας) Functions (return value-s, local workspace) Scripts Κλήση από command Όνοµα αρχείου Vs. Όνοµα συνάρτησης Κλήση χωρίς το.m! type <function_name> Εισαγωγή στη MATLAB 32

Πλοήγηση στη Matlab dir / ls pwd cd <directory> which <function> path pathtool Εισαγωγή στη MATLAB 33

οµή συνάρτησης Function [o1,o2,o3, ] = name(i1, i2, i3, ) % Comments.. Code.. Κλήση µε το όνοµα αρχείου! Εισαγωγή στη MATLAB 34

Κλήση συνάρτησης >> name Ti γίνεται; Αναζήτηση µεταβλητής στο τρέχον workspace Αναζήτηση built-in µεταβλητής Αναζήτηση built-in αρχείου Αναζήτηση αρχείου στο τρέχον directory Αναζήτηση αρχείου στο σύνολο των paths Υπερφόρτωση συνάρτησης! Εισαγωγή στη MATLAB 35

Κοινές προγραµµατιστικές δοµές Έλεγχος ροής (if, switch) οµές επανάληψης (for, while) Εντολές διακοπής επανάληψης (break, continue) Εισαγωγή στη MATLAB 36

οµή if elseif else end If A > B greater elseif A < B less elseif A = = B equal else error( Unexpected situation ) end Εισαγωγή στη MATLAB 37

Λογικοί και σχεσιακοί τελεστές Σχεσιακοί τελεστές (µεταξύ arrays) == (ισότητα) ~= (ανισότητα) < (µικρότερο) <= (µικρ. ή ίσο) > (µεγαλύτερο) >= (µεγαλ. ή ίσο) Λογικοί τελεστές & (and) (or) ~ (not) Εισαγωγή στη MATLAB 38

οµή for end % Hilbert matrix!! for i = 1:m for j = 1:n H(i,j) = 1/(i+j-1) end end Εισαγωγή στη MATLAB 39

Ζητήµατα χρόνου Προσοχή στον τρόπο δόµησης του κώδικα slow.m tic; x=-10000:0.5:10000; for for ii=1:length(x) if if x(ii)>=0, s(ii)=sqrt(x(ii)); else s(ii)=0; end; end; toc toc fast.m tic tic x=-10000:0.5:10000; s=sqrt(x); s(x<0)=0; toc toc Εισαγωγή στη MATLAB 40

Ζητήµατα χρόνου (Συνέχεια...) Τι γίνεται αν ο υπολογισµός είναι πολύ γρήγορος; tic; eig(rand(10)); toc toc inaccurate.m accurate.m tic; tic; for for i=1:10000 eig(rand(10)); end end toc/10000 Εισαγωγή στη MATLAB 41

ιδάγµατα Χρησιµοποιήστε διανυσµατικές εντολές της Matlab αντί για βρόχους! Κάντε pre-allocate την µνήµη αντί για δυναµικό allocation! Profiler: χρήσιµες πληροφορίες για το πρόγραµµα!!! Εισαγωγή στη MATLAB 42

Profiling profile on function profile report profile off Εισαγωγή στη MATLAB 43

Γραφικά στη Matlab 2-D γραφικά (plot, subplot, semilog[x y], loglog, bar, hist, pie) 3-D γραφικά (plot3, bar3, hist3, pie3, mesh, surf) Εισαγωγή στη MATLAB 44

Plot x = 0 :.01 : 2*pi; y = sin(x); plot(x,y) y2 = sin(x-.25) y3 = sin(x-.5) plot(x,y,x,y2,x,y3) % at the same time! Εισαγωγή στη MATLAB 45

Plot - Pie hold on subplot(m,n,1 mn); plot( ) plot(x,y, rx ) pie(1:7) Εισαγωγή στη MATLAB 46

Mesh A = zeros(32); A(14:16,14:16) = ones(3); F=abs(fft2(A)); mesh(f) Rotate3d on Εισαγωγή στη MATLAB 47

Movie! logo; fr=40; dtheta=360/fr; for frame = 1:fr, camorbit(dtheta,0) M(frame) = getframe(gcf); end movie(m); Εισαγωγή στη MATLAB 48

Επεξεργασία εικόνων Χ = imread(filename) image(x) Εισαγωγή στη MATLAB 49

Σχεδίαση γραφικών διεπαφών >> guide Εισαγωγή στη MATLAB 50

Σχεδίαση γραφικών διεπαφών (Συνέχεια...) uicontrol s push, radio buttons check boxes sliders panels listboxes... Εισαγωγή στη MATLAB 51

Σχεδίαση γραφικών διεπαφών (Συνέχεια...) >> guide...... σχεδίαση GUI...... save δηµιουργία.m file... προγραµµατισµός GUI Παραδείγµατα σε manual της MATLAB Εισαγωγή στη MATLAB 52

Παράλληλος/Κατανεµηµένος Υπολογισµός στη MATLAB Υποστήριξη MPI Εισαγωγή στη MATLAB 53

Άλλες χρήσιµες συναρτήσεις-δοµές textread, strread, strcat, regexp, num2str, dec2bin, sprintf, find, unique, union, intersect, eval flops: δεν υποστηρίζονται πλέον http://www.mathworks.com/company/newsletters/news_notes/clevescorner/winter2000.cleve. html εναλλακτικά PAPI: http://www.mathworks.com/matlabcentral/fileexchange/loadfile.do?objectid=5445 xxxdlg commands cells Εισαγωγή στη MATLAB 54

Αναφορές Goooogle!! http://www.google.com Εύκολη εισαγωγή στη Matlab από τον Mark Gockenbach http://www.math.mtu.edu/~msgocken/intro/intro.html Βιβλίο του Cleve Moller: Numerical Computing with MATLAB. http://www.mathworks.com/moller/chapters.html Tutorial από τη Mathworks http://www.mathworks.com/access/helpdesk/help/techdoc/learn_matlab/learn_matlab.shtml Tutorial µε πολλές παραποµπές http://www.glue.umd.edu/~nsw/ench250/matlab.htm Από το πανεπιστήµιο της Alberta http://www.ualberta.ca/cns/research/courses/2003/mathpackages/matlab/matlab.vis.jon.index. html Γραφικά στη Matlab http://www.ucalgary.ca/~appinst/doc/matlabhelp/techdoc/umg/chintro.html Η «απόλυτη» αναφορά Mastering MATLAB 6, D.Hanselman και B.R. Littlefield, Prentice Hall Matlab guide MATLAB Guide, D.J. Higham και N.J. Higham, SIAM Εισαγωγή στη MATLAB 55

Credits Mikael Johansson and Frank Lingelbach Department of Signals, Sensors and Systems, Linköping University Darryl Reid Εισαγωγή στη MATLAB 56