Προγραμματισμός στο ΜatLab

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Βασικές έννοιες αλγορίθμων
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Τύποι δεδομένων και τελεστές,
Βασικές Συναρτήσεις Πινάκων
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Εισαγωγή στους Η/Υ Πίνακες.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ημερομηνία: 13/12/2006 Τμήμα: Πληροφορικής του Ιονίου Πανεπιστημίου
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές
Προγραμματισμός Ι Πίνακες •Ο πίνακας είναι μία συλλογή μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης. Χρησιμοποιείται.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΘΕΩΡΙΑ ΔΙΑΛΕΞΗ 4 Αριθμητικές εκφράσεις και πράξεις Εντολές ανάθεσης
Μάθημα 2 Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Εντολες Επιλογης (Selection)
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δρ. Παναγιώτης Συμεωνίδης
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος δ
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
© GfK 2012 | Title of presentation | DD. Month
Νευρωνικά Δίκτυα Εργαστήριο Εικόνας, Βίντεο και Πολυμέσων
Προγραμματισμός ΙΙ Διάλεξη #7: Περισσότερες Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΕΛΕΓΧΟΣ ΡΟΗΣ ΜΑΘΗΜΑ 4. ΑΚΟΛΟΥΘΙΑΚΗ ΕΚΤΕΛΕΣΗ ΠΡΟΤΑΣΕΩΝ ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n.
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Διαφάνειες παρουσίασης #3
Microsoft Excel 4.4 Τύποι και Συναρτήσεις
Dr. Holbert Νικ. Α. Τσολίγκας Χρήστος Μανασής
Συνδυαστικά Κυκλώματα
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Ενότητα Α.4. Δομημένος Προγραμματισμός
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Δηλαδή οι σημαντικοί δεν ασχολούνται με μικροπράγματα.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
ΘΠ06 - Μεταγλωττιστές Ενδιάμεσος Κώδικας – Μεταφραστικά Σχήματα.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
Βασικά στοιχεία της Java
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Αντικειμενοστραφής Προγραμματισμός Ι
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Επισκέπτρια Επίκουρη Καθηγήτρια
Τελεστές και ή όχι Για την εκτέλεση αριθμητικών πράξεων
Δομή Επιλογής Μάθημα 4ο Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Τάξη Γ Οικονομίας & Πληροφορικής Θετικών Σπουδών 2ο Γενικό Λύκειο Αλιβερίου |
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

Προγραμματισμός στο ΜatLab ΝΙΚ. Α. ΤΣΟΛΙΓΚΑΣ ΧΡΗΣΤΟΣ ΜΑΝΑΣΗΣ

Προγραμματισμός στο ΜatLab Για τον προγραμματισμό στο Matlab χρησιμοποιούνται τέσσερες Δομές Έλεγχου Ροής: Βροχοι for (for Loops) Βροχοι While (while loops) Εντολή If (if statement) Εντολή switch (Switch statement) Πριν τη μελέτη των τεσσάρων δομών έλεγχου, θα παρουσιασθούν οι σχεσιακοί (relational operators) και λογικοί (logical operators) τελεστές. Οι πρώτοι κάνουν σύγκριση και δίνουν ως αποτέλεσμα τη λογική μονάδα εάν η σύγκριση είναι αληθής, διαφορετικά το Μηδέν. Οι δεύτεροι έχουν πιθανές τιμές τη λογική μονάδα 1 (αληθής, true) και το λογικό 0 (ψευδής, false).

ΣΧΕΣΙΑΚΟΙ ΤΕΛΕΣΤΕΣ

Σχεσιακοί Τελεστές ΣΧΕΣΙΑΚΟΙ ΤΕΛΕΣΤΕΣ < μικρότερο Χρησιμοποιούνται για τη σύγκριση βαθμωτών μεγεθών ή πινάκων ιδίων διαστάσεων. ΣΧΕΣΙΑΚΟΙ ΤΕΛΕΣΤΕΣ < μικρότερο <= μικρότερο ή ίσο > μεγαλύτερο >= μεγαλύτερο ή ίσο == ίσο ~= διάφορο (άνισο)

Σχεσιακοί τελεστές Η σύγκριση γίνεται μεταξύ αντιστοίχων στοιχείων Το αποτέλεσμα είναι 1 όταν η συνθήκη ικανοποιείται (TRUE) ή 0 όταν δεν ικανοποιείται (FALSE) Σε περίπτωση σύγκρισης πινάκων οι διαστάσεις τους πρέπει να είναι ίσες (η σύγκριση γίνεται στοιχείο προς στοιχείο)! π.χ. >> 5 == 5 Σύγκριση μιγαδικών: (Μόνο ως προς το Ans =1 πραγματικό μέρος) 1+5i < 2 + i : Ans =1 Ans 1 >> 20 >= 15 >> 10~=5 Ans 1

Σχεσιακοί Τελεστές - Ασκήσεις A = [1 2 4 5 B = 7 C = [2 2 2 2 6 3 8 2] 2 2 2 2] Δοκιμάστε: >>A > B >> A < C Στη σύγκριση πίνακα με πίνακα συγκρίνονται τα ομοθέσια στοιχεία, ενώ στη σύγκριση πίνακα με αριθμό συγκρίνεται κάθε στοιχείο του πίνακα με τον αριθμό αυτό.

Σχεσιακοί τελεστές – συνάρτηση find Σε συνδυασμό με σχεσιακούς τελεστές μπορεί να χρησιμοποιηθεί για τον εντοπισμό όλων των στοιχείων που ικανοποιούν συγκεκριμένα κριτήρια σε ένα διάνυσμα η ένα πίνακα. A = [1 2 4 5 B = 7 C = [2 2 2 2 D = [0 2 0 5 0 2] 6 3 8 2] 2 2 2 2] Εντοπίζει τις θέσεις των στοιχείων που ικανοποιούν το κριτήριο που τίθεται. π.χ >> find(D > 0) ans = 2 4 6 (θέσεις στοιχείων)

Η συνάρτηση find - Παράδειγμα Α= rand(5,4) A = 0.4451 0.5252 0.6813 0.4289 0.9318 0.2026 0.3795 0.3046 0.4660 0.6721 0.8318 0.1897 0.4186 0.8381 0.5028 0.1934 0.8462 0.0196 0.7095 0.68226 [row,column]=find(A>0.5) r = 2 5 1 3 4 z=find(A>0.5) Θέσεις z = 2 5 6 8 9 11 13 14 15 20 T= A(z) Βλέπουμε τους αριθμούς c = 1 2 3 4

Σχεσιακές Συναρτήσεις Σε νεώτερες εκδόσεις της MatLab χρησιμοποιούμε ισοδύναμες σχεσιακές συναρτήσεις αντί των σχεσιακών τελεστών X=y eq(x,y) 1>=5 ge(1,5) A~=B ne(A,B) (a+b) <(c/d) lt(a+b, c/d)

Ενσωμάτωση συναρτήσεων Μια συνάρτηση μπορεί να ενσωματωθεί σε μια άλλη συνάρτηση, δηλαδή το όρισμα μιας συνάρτησης μπορεί να είναι το αποτέλεσμα μιας άλλης συνάρτησης. Η ενσωμάτωση μπορεί να περιλαμβάνει περισσότερα του ενός επίπεδα π.χ. αν D = [0 2 0 3 0 2] τότε, η D(find(D>0)) έχει ως αποτέλεσμα 2 3 2, ενώ η D(D(find(D>0))) έχει ως αποτέλεσμα 2 0 0

ΕΚΤΕΛΕΣΗ ΠΟΛΛΑΠΛΩΝ ΕΝΤΟΛΩΝ

Τεχνάσματα Εισαγωγή μεγάλων γραμμών κώδικα Σε περίπτωση που μια εντολή του matlab περιέχει πολλούς υπολογισμούς, ενσωματωμένες συναρτήσεις ή μεγάλα ονόματα μεταβλητών, είναι πιθανό να πρέπει να επεκταθεί σε περισσότερες από μία γραμμές Η επέκταση αυτή μπορεί να πραγματοποιηθεί με χρήση του συμβόλου ‘…’ π.χ. >> long_variable_name1 + long_variable_name2 + mean(long_variable_name3) >> long_variable_name1 + long_variable_name2 + … mean(long_variable_name3)

Τεχνάσματα Εισαγωγή πολλαπλών γραμμών χωρίς την άμεση εκτέλεσή τους Πραγματοποιείται με χρήση Shift+Enter ή Shift+Return. Για την εκτέλεση του συνόλου των εντολών πρέπει να πατηθεί το Enter (ή Return).

Matlab Scripts Εισαγωγή πολλαπλών γραμμών χωρίς την άμεση εκτέλεσή τους Το Matlab μπορεί να εκτελέσει αλληλουχίες εντολών αποθηκευμένες σε αρχεία. Τα αρχεία αυτά πρέπει να έχουν extension ‘.m’ Τα *.m files συντάσσονται και αποθηκεύονται με τη βοήθεια του ενσωματωμένου στο matlab m-file editor Εκτελούνται είτε από το περιβάλλον του m-file editor είτε από το παράθυρο εντολών Τα m-files μπορούν να καλούν άλλα m-files **Απαραίτητη προϋπόθεση είναι να έχει ορισθεί στο matlab η θέση του m-file.

Matlab Scripts Πλεονεκτήματα των m-files Εύκολη τροποποίηση και αποθήκευση κώδικα Αναγνωσιμότητα/Φορητότητα - με την προσθήκη μη εκτελέσιμων σχολίων (με χρήση του συμβόλου ‘%’) τα οποία υποβοηθούν στην κατανόηση της λειτουργίας που επιτελείται Η αποθήκευση m-file απαιτεί πολύ λιγότερη μνήμη απ΄ότι η αποθήκευση του χώρου εργασίας.

Λογικοί Τελεστές Χρησιμοποιούνται για τη σύγκριση Boolean τιμών Οι Boolean τιμές χρησιμοποιούνται για την αναπαράσταση των ‘true’ και ‘false’ (συνήθως 1 και 0 αντίστοιχα) Στο matlab η τιμή ‘false’ ή 0 σημαίνει διάψευση της συνθήκης και οποιοσδήποτε θετικός ή ‘true’ σημαίνει επαλήθευσή της

Λογικοί Τελεστές A & B = ? Logical Operators & AND | OR ~ NOT Ο τελεστής & (AND) επιστρέφει την τιμή TRUE μόνον εάν οι τιμές τόσο του Α όσο και του Β είναι TRUE Πίνακας αληθείας A B Αποτέλεσμα & (AND) : 1 1 1 1 0 0 0 1 0 0 0 0 A & B = ?

Λογικοί Τελεστές A | B = ? Logical Operators & AND | OR ~ NOT Ο τελεστής | (OR) επιστρέφει TRUE εάν είτε το A είτε το B είναι TRUE. Πίνακας αληθείας A B Αποτέλεσμα | (OR) 1 1 1 1 0 1 0 1 1 0 0 0 A | B = ?

Λογικοί Τελεστές ~A = ? ~B = ? Logical Operators & AND | OR ~ NOT Πίνακας Αληθείας ~ (NOT) : A ~A B ~B 1 0 1 0 0 1 0 1 ~A = ? ~B = ?

Λογικοί Τελεστές - Παραδείγματα Παραδείγματα: A = 0 B = false C = 1 D = 8 E = true F = [ 0 1 0 2 0 3 0 1] Βρείτε: >>A & B >>A & C >>A & D >>A & E >>A & F >>A | B >>A | C >>A | D >>A | E >>A | F >> ~A >> ~B >> ~C >> ~D >> ~E >> ~F >> ~A&C >> ~C & F

Λογικοί Τελεστές - Παραδείγματα Παράδειγμα A = -2 0 3 1 B = 2 -3 1 2 Ποια η διαφορα μεταξυ ~(Α>1) και ~Α>1 ??? ans = 0 0 1 0 A>1&B<2 ans = 0 1 1 0 A>1|B<2 ans = 1 1 0 1 ~(A>1

Λογικοί Τελεστές Προτεραιότητα εκτέλεσης: Κατά την εκτέλεση πολλαπλών λογικών πράξεων ο τελεστής ~ (NOT) εκτελείται πρώτος και ακολουθείται από τους & (AND) και | (OR). π.χ. A&B|C = (A&B) | C A|B&C = A | (B&C) A&~B|C = (A&(~B)) | C A|~B&C = A | ((~B)&C)

Έλεγχος Ροής

Έλεγχος Ροής Για τον έλεγχο ροής στο matlab χρησιμοποιούνται: Εντολές συνθήκης (condition statements) και Βρόχοι (loops)

Εντολές συνθήκης Πολλές φορές είναι αναγκαίο ορισμένες εντολές να εκτελούνται μόνον εφόσον ικανοποιούνται ορισμένες συνθήκες. Ο καθορισμός των συνθηκών γίνεται με τη βοήθεια σχεσιακών και λογικών τελεστών. Ο έλεγχος ροής στο matlab πραγματοποιείται με τις εντολές ‘If’, ‘Else’, ‘Elseif’ και ‘Switch’

Εντολές Συνθήκης If, Else, και Elseif if logical_expression commands Το σύνολο των εντολών υπό συνθήκη τερματίζεται με την εντολή end Εάν η λογική έκφραση είναι ψευδής, όλες οι υπό συνθήκη εντολές παραλείπονται. Η εκτέλεση του script συνεχίζεται μετά την εντολή end. Basic form: if logical_expression commands end

Εντολές Συνθήκης - Δομή Engienering H192 Winter 2005 Εντολές Συνθήκης - Δομή Η Δομή της εντολής: elseif είναι μια λέξη. if expression1 % Είναι αληθής % εκτέλεσε αυτές τις εντολές. elseif expression2 % Είναι αληθής else % Η Προεπιλογήt % εκτέλεσε αυτές τις εντολές end Instructor notes: Like C/C++ Matlab has an if-elseif-else structure for decision making or branching. There are a few differences between Matlab and C/C++. In Matlab, elseif is one word, rather than two, as it is in C/C++. Curly brackets are not used in Matlab at all, and the end of the if-elseif-else block is denoted with end. Just like in C/C++ expressions are evaluated to be true or false and when an expression evaluates to true, then the statements that correspond to that section of the block are executed. Parentheses are not required around the expression being evaluated. Lecture 21

Εντολές συνθήκης Παράδειγμα A = 6; B = 0; if A > 6 D = [1 2 6] A = A + 1 end if A | B E = mean(B)

Εντολές συνθήκης If, Else, and Elseif if logical_expression commands 1 end

Εντολές συνθήκης Παράδειγμα A = 6; B = 0; if A > 6 D = [1 2 6] A = A + 1 else D = [ 0 0 0] A = A - 1 end if A & B E = mean(B) else E = 0 end

Εντολές συνθήκης If, Else, and Elseif Στο παράδειγμα που ακολουθεί, η πρώτη εντολή elseif ενεργοποιεί την εκτέλεση του συνόλου των εντολών που την ακολουθούν, εφόσον η logical_expression_1 είναι ψευδής και η logical_expression_2 είναι αληθής. Εάν αυτή είναι ψευδής και logical_expression_3 είναι αληθής, εκτελείται το σύνολο εντολών commands 3 διαφορετικά δεν εκτελείται κανένα σύνολο εντολών. if logical_expression_1 commands 1 elseif logical_expression_2 commands 2 elseif logical_expression_3 commands 3 end

Εντολές συνθήκης Ποιές θα είναι οι τιμές των D, A μετά την εκτέλεση του παρακάτω κώδικα; A = 6; B = 0; if A > 3 D = [1 2 6] A = A + 1 elseif A > 2 D = D + 1 A = A + 2 end

Εντολές συνθήκης - Παράδειγμα Η Συνάρτηση g ορίζεται ως: Δημιουργία m file: function [G] = gee(x) for i=1:length(x) if x(i) <= 0.5 G(i) = x(i)^2; else G(i) = 0.25; end

Η εντολή switch/case switch switch_expression case value_1 statement(s) case value_2 case value_3 ………….. otherwise end

Παρατηρήσεις για Εντολή switch/case Παρατηρήσεις: Η πρώτη γραμμή περιέχει την λέξη switch, ακολουθούμενη από το όνομα switch_expression (π.χ αλφαριθμητικό, μαθηματική παράσταση). Μετά ακολουθούν οι διάφορες εντολές case. Κάθε εντολή έχει ένα ονομα (π.χ. value _1, value_2 κλπ) (π.χ αλφαριθμητικό) και μετά ακολουθούν οι εντολές που θα εκτελεστούν αν βρεθούμε στη συγκεκριμένη περίπτωση. Στο τέλος ακολουθεί η προαιρετική περίπτωση/εντολή otherwise της οποίας οι εντολές θα εκτελεστούν αν καμιά από τις προηγούμενες περιπτώσεις δεν ισχύει. Δεν χρειάζεται να διακόψουμε τη ροή της δομής μετά από κάθε case, αυτό θα γίνει αυτόματα μόλις επαληθευτεί μια case.

Εντολή Συνθήκης Switch Εντολή Συνθήκης Switch Η εντολή switch μπορει να χρησιμοποιηθεί σαν πολλές elseif: εκτελεί μόνο την εντολή case της οποίας η τιμή είναι ίση με την τιμή της expression. switch expression case value 1 commands 1 case value 2 commands 2 case value n commands n end

Παράδειγμα μετατροπής από inches, μέτρα και χιλιοστά σε εκατοστά case { 'millimeter','mm'} y = x/10; disp(' ') disp(‘Σε (cm), το αποτέλεσμα είναι ') disp(y) case {'cm','centimeter'} y = x; disp(‘Σε εκατοστά(cm), το αποτέλεσμα είναι ') otherwise disp([‘Άγνωστες μοναδες:' units]) y = nan; end x = input(‘Τιμή μεταβλητής για μετατροπή: '); units = input(‘Μονάδες μέτρησης μέσα σε απόστροφο): '); switch units case {'in','inch'} y = 2.54*x; % Μετατροπή σε %εκατοστα disp(‘ ') disp(‘Σε (cm), το αποτέλεσμα είναι ') disp(y) case {'m','meter'} y = x*100; %Μετατροπή σε εκατοστά disp(' ')

Εντολές συνθήκης Ποια θα είναι η τιμή των Α,D μετά την εκτέλεση του πιο κάτω κώδικα; A = 6; B = 0; switch A case 4 D = [ 0 0 0] A = A - 1 case 5 B = 1 case 6 D = [1 2 6] A = A + 1 end

Βρόχοι

Βρόχοι Επιτρέπουν την επανάληψη εκτέλεσης ενός συνόλου εντολών με συγκεκριμένο, ελεγχόμενο τρόπο. Το matlab χρησιμοποιεί δύο τύπους βρόχων: For loops While loops

Βρόχοι For Loops Ο βρόχος for loop εκτελεί μια εντολή (ή σύνολο εντολών) ένα προκαθορισμένο αριθμό φορών. for index = start value : increment : end value statement #1 statement #2 statement #3 end ** εάν το increment δεν καθορισθεί, θεωρείται ίσο με τη μονάδα.

Βρόχοι For Loops Παράδειγμα: for i = 1:1:100 x(i) = 0 end

Βρόχοι Παράδειγμα for n = 1:1:4 fprintf (‘ The value of n is %d\n’ n) Array1(n)= n; Array2(n)= n^2; end

Βρόχοι For Loops Στις εφαρμογές απαιτείται μέσα σ’ ένα βρόχο να δημιουργήσουμε ένα άλλο (εσωτερικό) βρόχο και σ’ αυτόν ένα άλλο βρόχο κοκ. Ονομάζονται πολλαπλοί ή εγκιβωτισμένοι βρόχοι (nested loops). A = [ ] for i = 1:m for j = 1:n A(i,j) = i + j end

Βρόχοι Παράδειγμα A = for i=1:3 for j=1:3 1 5 -3 A2(i,j)=A(i,j)^2 1 5 -3 2 4 0 -1 6 9 for i=1:3 for j=1:3 A2(i,j)=A(i,j)^2 end

Βρόχοι Παράδειγμα format compact for i = 1:Rows for j = 1:Columns Rows = input(‘ Εισαγωγή αριθμού γραμμών στον πίνακα: '); Columns = input(' Εισαγωγή αριθμού στηλών στον πίνακα: '); for i = 1:Rows for j = 1:Columns fprintf('Enter A(%0.0f,%0.0f):',i,j); A(i,j) = input(' '); end A

Βρόχοι While Loops Ο βρόχος while εκτελεί μια εντολή (ή σύνολο εντολών) καθόλο το διάστημα για το οποίο η μεταβλητή ελέγχου είναι αληθής. Οι λέξεις “while” και “end” χρησιμοποιούνται στην αρχή και στο τέλος του βρόχου. Η ακολουθία εντολών «statements» εκτελούνται εφόσον η συνθήκη relation ικανοποιείται (δηλ. είναι αληθής) και σταματούν όταν αυτή παύει να ισχύει. Για την συνθήκη relation χρησιμοποιούνται οι σχεσιακοί και λογικοί τελεστές. while relation statement #1 end

Βρόχοι While Loops while A > 0 & B < 10 A = A + 1 B = B – 2 end Παράδειγμα: A = 6 B = 15 while A > 0 & B < 10 A = A + 1 B = B – 2 end

Βρόχοι Διακοπή εκτέλεσης βρόχου Η εντολή ‘break’ τερματίζει άμεσα ένα βρόχο for ή while Η εκτέλεση του κώδικα συνεχίζεται μετά και έξω από τον αντίστοιχο βρόχο. Η εντολή break ορίζεται μόνο μέσα σε βρόχους for και while.

Βρόχοι Διακοπή εκτέλεσης βρόχου while A > 0 & B < 10 A = A + 1 Example: A = 6 B = 15 count = 1 while A > 0 & B < 10 A = A + 1 B = B + 2 count = count + 1 if count > 100 break end

Συναρτήσεις Αποτελούν δομικά στοιχεία ενός προγράμματος Επιτρέπουν τη γενίκευση και επαναχρησιμοποίηση του κώδικα Δέχονται ένα σύνολο δεδομένων, εκτελούν ένα σύνολο εντολών και αποδίδουν μια έξοδο (αποτέλεσμα)

Συναρτήσεις στο Matlab Στο Matlab, κάθε συνάρτηση είναι ένα .m file μια καλή τακτική είναι το όνομα του αρχείου να ταυτίζεται με το όνομα της συνάρτησης. function outargs = funcname(inargs); Function input output

Παράδειγμα Υπολογισμός του κύβου ενός αριθμού -> (x3) Γράψτε τον παρακάτω κώδικα σε ένα .m file και αποθηκεύστε το με το όνομα cube.m Επιλέξτε το κατάλληλο directory στο Matlab Στο παράθυρο εντολών, γράψτε cube(3). Ελέγξτε το αποτέλεσμα. Η συνάρτηση cube μπορεί να χρησιμοποιηθεί για τον υπολογισμό του κύβου οποιουδήποτε αριθμού. function [y] = cube(x) y = x*x*x; >> cube(5) Ans = 125 >> cube(1.75) Ans = 5.3594

Προσθήκη βοήθειας Προσθέστε ένα σχόλιο μεταξύ του ορισμού της συνάρτησης και της πρώτης γραμμής κώδικα. γράψτε help cube στο παράθυρο εντολών function [y] = cube(x) % text to be displayed by help function y = x*x*x; >> help cube text to be displayed by help function

Αρχεία Συναρτήσεων Αρχεία συναρτήσεων (function m-files) έχουν μια γραμμή ορισμού συνάρτησης, δέχονται ορίσματα εισόδου και επιστρέφουν μεταβλητές εξόδου, και των οποίων οι εσωτερικές μεταβλητές είναι τοπικές. Τα αρχεία συναρτήσεων (function m-files) περιέχουν εντολές του MATLAB με μεταβλητές εισόδου, input1, input2, …. με την οποία υπολογίζονται νέες μεταβλητές εξόδου output1, output2, …..

Η Δομή των Αρχείων Συναρτήσεων Η Δομή των Αρχείων Συναρτήσεων Είναι η εξής: Επικεφαλίδα (header) function [output1, output2, ….] = filename (input1, input2, ….) To filename είναι το όνομα της συνάρτησης (function), η οποία αποθηκεύεται στο m-file με όνομα filename.m.

Η Δομή των Αρχείων Συναρτήσεων Η Δομή των Αρχείων Συναρτήσεων Είναι η εξής: Σχόλια (comments) Ξεκινούν με το σύμβολο % και είναι προαιρετικά. Εντολές (statements) Εντολές της MATLAB με τις οποίες υπολογίζονται οι μεταβλητές εξόδου output1 = ……. output2 = …….

Η Δομή των Αρχείων Συναρτήσεων Η Δομή των Αρχείων Συναρτήσεων Είναι η εξής: Υποσυναρτήσεις (subfunctions) Είναι εσωτερικές συναρτήσεις functions που περιέχονται στο αρχείο filename.m. Ορίζονται με τον ίδιο ακριβώς τρόπο, π.χ. function [out1, out2,] = subfname (x, y, z)

Η Δομή των Αρχείων Συναρτήσεων με Υποσυνάρτηση Η Δομή των Αρχείων Συναρτήσεων με Υποσυνάρτηση function [mean, stdev] = stat2(x) % function [mean,stdev] = stat2(x) Υπολογιζει %τον Μ.Ο. και τυπικη αποκλιση. n = length(x); mean = avg(x,n); stdev = sqrt(sum((x-avg(x,n)).^2)/n); %------------------------- function mean = avg(x,n) %Υποσυναρτηση για τον Μ.Ο mean = sum(x)/n;

Η Δομή των Αρχείων Συναρτήσεων Η Δομή των Αρχείων Συναρτήσεων Γενικά: Μια συνάρτηση μπορεί να δεχθεί οποιοδήποτε αριθμό δεδομένων και να αποδώσει οποιοδήποτε αριθμό αποτελεσμάτων. Για παράδειγμα, η συνάρτηση cube μπορεί να επεκταθεί για να δέχεται δύο αριθμούς ως εισόδους και να υπολογίζει τον κύβο του καθενός απ’ αυτούς. function [y1, y2] = cube(x1, x2) % text to be displayed by help function y1 = x1*x1*x1; y2 = x2*x2*x2 >> cube(2,3) Ans = 8 >> [a b] = cube(2,3) a = 8 b = 27

nargin Το Matlab δέχεται την κλήση μιας συνάρτησης με οποιοδήποτε αριθμό εισόδων και εξόδων Η συνάρτηση nargin μπορεί να χρησιμοποιηθεί για τον προσδιορισμό των εισόδων που έχει παράσχει ο χρήστης. function [y1, y2] = cube(x1, x2) if nargin == 1 y1 = x1*x1*x1; y2 = nan; elseif nargin == 2 y2 = x2*x2*x2; end >> cube(2,3) Ans = 4 >> [a b] = cube(2,3) a = 8 b = 27

return Η συνάρτηση return τερματίζει τους υπολογισμούς και επιστρέφει τα αποτελέσματα που έχουν υπολογισθεί. function [y1, y2] = cube(x1, x2) if nargin == 1 y1 = x1*x1*x1; y2 = nan; return end y2 = x2*x2*x2; >> cube(2,3) Ans = 4 >> [a b] = cube(2,3) a = 8 b = 27

Υπολογισμός του Κύβου οσωνδήποτε Αριθμών Υπολογισμός του Κύβου οσωνδήποτε Αριθμών Μπορεί να επιτευχθεί με τη χρήση διανυσμάτων function [y] = cube(x) y = x.^3; Ο τελεστής .^ σημαίνει ύψωση του καθενός από τα στοιχεία του διανύσματος x στην τρίτη δύναμη >> cube(2) Ans = 8 >> cube([2 3]) Ans = [8 27]