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

Σχετικά έγγραφα
Εισαγωγή στην Αριθμητική Ανάλυση

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

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

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

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

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

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

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

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

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Αριθμητική Ανάλυση & Εφαρμογές

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

Ένας πρώτος τρόπος εύρεσης των διαστάσεων ενός πίνακα στο. Matlab είναι με την εντολή size(όνομα πίνακα) και πατώντας. enter ( )

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

Διαδικασιακός Προγραμματισμός

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

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

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

ΗΥ-150. Προγραμματισμός

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

ΗΥ-150. Προγραμματισμός

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

Πατώντας το πλήκτρο Enter ή το κουμπί Enter από την γραμμή τύπων εκτελείται η μαθηματική πράξη και παρουσιάζει το αποτέλεσμα του κελιού.

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)

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

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

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

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

Πρόβλημα 29 / σελίδα 28

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 5)

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

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

Στοιχειώδης προγραμματισμός σε C++

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Προγραμματισμός σε Octave/Matlab

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

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

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

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

Προγραμματισμός Ι (ΗΥ120)

Πρόβλημα 37 / σελίδα 207

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

Διαδικασιακός Προγραμματισμός

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

Transcript:

ΠΑΡΑΡΤΗΜΑ Α

A-2 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Περιεχόμενα Παραρτήματος Α A.1 Γενικά... Α-3 A.2 Αριθμοί και βασικές δομές δεδομένων στο MATLAB... Α-3 A.3 Αριθμητικές πράξεις... Α-7 A.4 Σχεσιακοί Tελεστές (Relational Operators)... Α-8 A.5 Λογικοί τελεστές... Α-9 A.6 Έλεγχος ροής προγράμματος... Α-10 A.7 Ειδικοί χαρακτήρες και μεταβλητές... Α-11 A.8 Εισαγωγή και εμφάνιση δεδομένων -- μορφότυπο... Α-12 A.9 Γραφικές παραστάσεις... Α-12 A.10 Αρχεία προγραμμάτων και συναρτήσεων... Α-12

ΠΑΡΑΡΤΗΜΑ Α: Α-3 A.1 Γενικά Το MATLAB είναι υψηλού επιπέδου γλώσσα προγραμματισμού κατάλληλη για επίλυση σύνθετων μαθηματικών προβλημάτων. Περιλαμβάνει ένα σύνολο συναρτήσεων (functions), είτε ενσωματωμένων στον interpreter είτε σε αρχεία εντολών (m-files), οι οποίες καλούνται, μεταφράζονται εντολή προς εντολή και εκτελούνται. Ο προγραμματιστής μπορεί να παράξει δικά του m-files, με αυτόνομα εκτελέσιμα προγράμματα (scripts) ή συναρτήσεις. Το MATLAB παρέχει παραθυρικό περιβάλλον προγραμματισμού, με τρία βασικά παράθυρα: το Παράθυρο Εντολών (Command window), το Παράθυρο Εισαγωγής Κειμένου (Editor window) και το Παράθυρο Σχημάτων (Figure window). Στο Παράθυρο Εντολών δίνουμε εντολές οι οποίες εκτελούνται αμέσως μετά το πάτημα του πλήκτρου νέας γραμμής (enter). Στο Παράθυρο Κειμένου γράφουμε αρχεία εντολών (m-files), ενώ στο Παράθυρο Σχημάτων σχεδιάζουμε γραφικές παραστάσεις με τη χρήση κατάλληλων σχεδιαστικών εντολών. Υπάρχουν και άλλα δευτερεύοντα παράθυρα, όπως αυτό της Ιστορίας των εντολών (Command History) και του Χώρου εργασίας (Workspace). Αν επιλέξουμε ένα σύνολο εντολών, είτε από το Παράθυρο Κειμένου, είτε από το παράθυρο Ιστορίας των εντολών και πατήσουμε δεξί κλικ, έχουμε (μεταξύ άλλων επιλογών) τη δυνατότητα άμεσης εκτέλεσης του επιλεγέντος συνόλου (F9 ή επιλογή Evaluate Selection). Όλες οι μεταβλητές οι οποίες έχουν οριστεί από τη στιγμή εκκίνησης του MATLAB είναι αποθηκευμένες σε χώρο μνήμης προσβάσιμο από όλα τα προγράμματα και αποτελούν το Workspace. Μπορούμε να σβήσουμε επιλεκτικά μεταβλητές με την εντολή clear (π.χ. clear x, για σβήσιμο της x), ή και όλο το workspace με clear all (κάτι που συνιστάται πριν την εκτέλεση ενός νέου προγράμματος). A.2 Αριθμοί και βασικές δομές δεδομένων στο MATLAB Το MATLAB χρησιμοποιεί τη συνήθη δεκαδική παράσταση αριθμών. Η περιοχή που μπορεί να παρασταθεί είναι προσεγγιστικά η ±(10-308, 10 308 ). Πολύ μικροί ή πολύ μεγάλοι αριθμοί παριστάνονται σε εκθετική μορφή. Τυπικά παραδείγματα παραστάσεων αριθμών στο MATLAB είναι 67423.97215 2468.1357e-4-0.1234e3 Η βασική δομή αριθμητικών δεδομένων του MATLAB είναι ο ορθογωνικός πίνακας (nxm) μιγαδικών αριθμών (συμπεριλαμβανόμενων των πραγματικών), ο οποίος και δεν χρειάζεται διαστασιοδότηση, δεν χρειάζεται δηλ. να δηλώσουμε τις τιμές των n και m. Εκφυλισμένες περιπτώσεις αυτής της βασικής δομής είναι τα διανύσματα σειράς (n=1) ή στήλης (m=1), αλλά και οι απλοί βαθμωτοί αριθμοί (μιγαδικοί ή πραγματικοί). Έτσι δίνοντας τις παρακάτω εντολές, δημιουργούμε το διάνυσμα-

A-4 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο σειρά z=[3.9+2i 5.2 4+6.5i], διάστασης 1x3, όπως επιβεβαιώνει το εκτυπούμενο απότέλεσμα (άσπρο υπόβαθρο). x=5.2; y=4+6.5*i; z=[3.9+2*j x y] z = 3.9000 + 2.0000i 5.2000 4.0000 + 6.5000i Οι μιγαδικοί αριθμοί δίνονται στη μορφή a+b*i ή a+b*j, με a,b πραγματικούς. Το semicolon (ελληνικό ερωτηματικό) ; στο τέλος μιας εντολής αποτρέπει την εκτύπωση του αποτελέσματος, ενώ χωρίς αυτό έχουμε εκτύπωση, όπως συνέβη πιο πάνω με την τελευταία εντολή για το z. Σε μία γραμμή μπορούν να δοθούν πολλές εντολές, χωριζόμενες βεβαίως με ; (π.χ. θα μπορούσαν οι δύο πρώτες γραμμές πιο πάνω να γραφούν ως x=5.2; y=4+6.5*i;). Οτιδήποτε ξεκινά με τον χαρακτήρα % μέχρι το τέλος της γραμμής αποτελεί σχόλιο και αγνοείται κατά την εκτέλεση. Αν δώσουμε το όνομα μεταβλητής χωρίς ; εκτυπώνεται η τιμή της (με την προϋπόθεση ότι έχει οριστεί στο workspace του MATLAB). Η συνάρτηση size(α) επιστρέφει διάνυσμα με τις διαστάσεις του πίνακα Α, ενώ η length(α) επιστρέφει τη μεγαλύτερη από τις δύο διαστάσεις: y y = 4.0000 + 6.5000i size(z) 1 3 length(z) 3 Κατασκευή και δεικτοδότηση πινάκων Ένας πίνακας nxm μπορεί να δοθεί με τις n γραμμές του στην ίδια γραμμή εντολής χωριζόμενες με ; ή σε διαδοχικές γραμμές εντολής. Έτσι, οι πίνακες a και b στο παρακάτω τμήμα προγράμματος είναι ίσοι.

ΠΑΡΑΡΤΗΜΑ Α: Α-5 a = [1 2 3 4; 5 6 7 8]; b = [1 2 3 4 5 6 7 8]; Η δεικτοδότηση των πινάκων αρχίζει από το 1. Για τα z,b που έχουν ορισθεί νωρίτερα, το z(3) θα επιστρέψει την τιμή 4.0000 + 6.5000i, το b(2,4) την τιμή 8, ενώ η αναφορά z(0) ή z(4) θα προκαλέσει μήνυμα λάθους. Ο ανάστροφος (transpose) πίνακας δίνεται με τον τελεστή «τελεία απόστροφος»., ενώ μόνη η απόστροφος δίνει τον μιγαδικό συζυγή ανάστροφο. π.χ., αν a όπως πιο πάνω a. 1 5 2 6 3 7 4 8 Η έκφραση a:b:c, όπου a,b,c πραγματικοί, δίνει το διάνυσμα [a a+b a+2b d], με d c. Το MATLAB διαθέτει επίσης έτοιμες συναρτήσεις που χρησιμοποιούνται για την κατασκευή σταθερών πινάκων επιθυμητής διάστασης: t=[0:0.1:0.5]; f=3*ones(2,4); g=zeros(1,5); t f g t = f = g = 0 0.1000 0.2000 0.3000 0.4000 0.5000 3 3 3 3 3 3 3 3 0 0 0 0 0

A-6 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Σε σχέση με τον χαρακτήρα : (colon) θα πρέπει να πούμε ότι χρησιμοποιείται στη δεικτοδότηση των πινάκων για να επιλέξει συγκεκριμένα στοιχεία, σειρές ή στήλες τους. Έτσι, για τα t και b όπως ορίστηκαν παραπάνω, το t(3:5) επιστρέφει τα στοιχεία t(3) έως t(5), το b(2,:) επιστρέφει τη δεύτερη γραμμή του b, ενώ το b(:,2:4) επιστρέφει τον πίνακα που απαρτίζεται από τις στήλες 2 έως και 4 του b. b = [1 2 3 4 5 6 7 8]; t=[0:0.1:0.5]; t(3:5) b(2,:) b(:,2:4) 0.2000 0.3000 0.4000 5 6 7 8 2 3 4 6 7 8 Τέλος, ένας πίνακας μπορεί να αυξηθεί με προσθήκη σειρών ή στηλών, ή ακόμη και να αναδιαταχθεί, ως εξής: t=[t 0.6 0.7]; b =[b [11 12 13 14; 15 16 17 18]]; b=[b(:,5:8) b(:,1:4)]; t b t = 0 0.100 0.200 0.300 0.400 0.500 0.600 0.700 b = 11 12 13 14 1 2 3 4 15 16 17 18 5 6 7 8

ΠΑΡΑΡΤΗΜΑ Α: Α-7 A.3 Αριθμητικές πράξεις Η πρόσθεση (+) και η αφαίρεση (-) γίνονται κανονικά μεταξύ ισομεγέθων πινάκων, στοιχείο προς στοιχείο. Ο πολλαπλασιασμός Α*Β ορίζεται μεταξύ πίνακα Α (οποιασδήποτε διάστασης) και αριθμού Β, καθώς και μεταξύ πινάκων Α(nxm) και Β(mxk), δίνοντας το γραμμικό αλγεβρικό τους γινόμενο, διάστασης nxk. Μεταξύ ισομεγέθων πινάκων ορίζεται ο πολλαπλασιασμός στοιχείο-προς-στοιχείο με τον τελεστή «τελεία αστεράκι».*, καθώς και η διαίρεση στοιχείο-προς-στοιχείο,./. Ορίζεται επίσης η δύναμη πίνακα στοιχείο-προς-στοιχείο με τον τελεστή.^. Η διαίρεση (/) πίνακα με αριθμό δίνει, κατά τα γνωστά, ισομεγέθη πίνακα με όλα τα στοιχεία του διαιρεμένα με τον αριθμό, ενώ η διαίρεση μεταξύ πινάκων ορίζεται σε δύο μορφές: δεξιά διαίρεση (/) και αριστερή διαίρεση (\), δίνει δε τη λύση γραμμικών συστημάτων. Συγκεκριμένα: αν Α τετραγωνικός πίνακας (nxn) και Χ πίνακας (nxk), με τον ίδιο αριθμό γραμμών όπως ο Α, τότε ο Υ=Α\Χ είναι η λύση Υ του συστήματος ΑΥ=Χ. Μεταξύ των δύο διαιρέσεων ισχύει η ισοδυναμία (Α\Χ) =Χ /Α. Σε εντολές με πολλές αριθμητικές πράξεις ισχύει η γνωστή προτεραιότητα μεταξύ των πράξεων, καθώς και η δυνατότητα τροποποίησης της προτεραιότητας αυτής με χρήση παρενθέσεων. Τα παραδείγματα που ακολουθούν φωτίζουν τον τρόπο εκτέλεσης αριθμητικών πράξεων μεταξύ πινάκων στο MATLAB.

A-8 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο A=[1 5 8; -2 7 3; 5 2 1]; X=[2 3 1; 5 6 1]'; Y=A\X a=2; A+a*A Y = ans 0.0265 = -0.1327 0.4513 3 15 0.7434 24-0.0354-6 21 0.1770 9 15 6 3 Z=X /A C=A.*A Z C = 0.0265 1 25 0.4513 64-0.0354-0.1327 4 49 0.7434 9 0.1770 25 4 1 A*Y C./A ans 2.0000 = 5.0000 3.0000 1 5 6.0000 8 1.0000-2 7 1.0000 3 5 2 1 A.^2 1 25 64 4 49 9 25 4 1 A.4 Σχεσιακοί Tελεστές (Relational Operators) Είναι παρόμοιοι με τους σχεσιακούς τελεστές άλλων γλωσσών προγραμματισμού, και επιστρέφουν λογική τιμή 1 ή 0 («αληθές» ή «ψευδές», αντίστοιχα). > μεγαλύτερο >= μεγαλύτερο ή ίσο < μικρότερο < μικρότερο ή ίσο == ίσο ~= άνισο Για πίνακες (ισομεγέθεις) η σύγκριση γίνεται στοιχείο-προς-στοιχείο και επιστρέφει ισομεγέθη πίνακα λογικών τιμών, 1 ή 0. Έτσι, για τους πίνακες Α και Χ των προηγούμενων παραδειγμάτων έχουμε:

ΠΑΡΑΡΤΗΜΑ Α: Α-9 Ακόμη (Α\Χ) ~=Χ /Α ans C=[2 = 4 6; 8 10 12]; D=[3 4 5; 10 11 12]; C==D 0 0 0 0 0 0 0 1 0 0 0 1 C>=D 0 1 1 0 0 1 Παράδειγμα 1: Να βρεθεί σε πόσα στοιχεία διαφέρουν δοσμένα διανύσματα x και y. x=[1 2 3 4 5]; y=[1 2 4 4 6]; sum(x~=y) 2 Η συνάρτηση sum() υπολογίζει το άθροισμα των στοιχείων διανύσματος. A.5 Λογικοί τελεστές Τρείς λογικοί τελεστές χρησιμοποιούνται στο MATLAB: & λογικό AND λογικό OR ~ λογικό NOT Σε πίνακες εφαρμόζονται στα επιμέρους στοιχεία. Πρέπει να τονιστεί ότι κάθε μη μηδενικός πραγματικός αριθμός θεωρείται στις λογικές πράξεις ως 1. Έτσι

A-10 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο A=[1.5 0-2.3 1]; B=[0 1 2 0]; A&B A B ~A 0 0 1 0 1 1 1 1 0 1 0 0 A.6 Έλεγχος ροής προγράμματος Οι εντολές break, else, elseif, end, error, for, if, return και while επιτρέπουν την υπό συνθήκη εκτέλεση τμημάτων προγράμματος. Πιο συγκεκριμένα: Οι εντολές for...end χρησιμοποιούνται για την επανάληψη του τμήματος προγράμματος που περικλείουν. Οι εντολές if<συνθήκη>...end εκτελούν το περικλειόμενο τμήμα εφόσον η συνθήκη είναι αληθής. Οι εντολές else και elseif χρησιμοποιούνται σε συνδυασμό με την if για υπό συνθήκη εκτέλεση τμήματος εντός του βρόχου. Οι while<συνθήκη>...end εκτελούν επανειλημμένα το περικλειόμενο τμήμα προγράμματος εφόσον η <συνθήκη> παραμένει αληθής. Στην εκδοχή <while 1... end> εκτελείται συνεχώς το περικλειόμενο τμήμα προγράμματος, έως ότου κάποιος εσωτερικός έλεγχος, σε συνδυασμό με τις εντολές break; end;, το σταματήσει. Γενικά, η εντολή break τερματίζει την εκτέλεση ενός βρόχου. Η εντολή error χρησιμοποιείται για την εμφάνιση λάθους και διακοπή εκτέλεσης των συναρτήσεων. Τα παρακάτω παραδείγματα δείχνουν τη χρήση των εντολών ελέγχου. Παράδειγμα 2: Σε διάνυσμα x να βρεθεί η θέση του πρώτου στοιχείου που είναι μεγαλύτερο από το προηγούμενό του. Αν δεν υπάρχει, τυπώνεται μηδέν.

ΠΑΡΑΡΤΗΜΑ Α: Α-11 x=[10 9 8 7 6 8 10 12]; flag =0; for i=2:length(x) if x(i)>x(i-1) flag=1; break; end; end i*flag 6 Παράδειγμα 3: Να τυπωθούν οι όρoι γεωμετρικής προόδου 1, r, r 2, με r>1, των οποίων το άθροισμα δεν υπερβαίνει το 100, καθώς και το άθροισμα. a=1; s=a; x=[a]; r=2.5; while 1 a=a*r; s=s+a; if s>100 s=s-a; break; end x=[x a]; end; x s x = s = 1.0000 2.5000 6.2500 15.6250 39.0625 64.4375 A.7 Ειδικοί χαρακτήρες και μεταβλητές Όπως κάθε γλώσσα προγραμματισμού, έτσι και το MATLAB κρατάει συγκεκριμένους χαρακτήρες και λέξεις-κλειδιά ως ονόματα σταθερών και συναρτήσεων, τα οποία ο προγραμματιστής δεν θα πρέπει να αναμίξει με δικές του μεταβλητές. Έτσι, το pi παριστάνει το π (3.14159...), τα i και j παριστάνουν τη φανταστική μονάδα (δεν πρέπει να γίνει μίξη με τους δείκτες βρόχων), το NaN σημαίνει Not a Number και λαμβάνεται σε περιπτώσεις απροσδιοριστίας (πχ. - ), το inf παριστάνει το άπειρο και εμφανίζεται στις περιπτώσεις διαίρεσης με μηδέν, κ.ο.κ.

A-12 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο A.8 Εισαγωγή και εμφάνιση δεδομένων -- μορφότυπο Μπορούμε να εισάγουμε δεδομένα κατά τη διάρκεια εκτέλεσης του προγράμματος με χρήση της συνάρτησης input(). H εμφάνιση δεδομένων στην οθόνη είδαμε ότι μπορεί να γίνει με εντολές προγράμματος ή αναγραφή μεταβλητών χωρίς το ; στο τέλος. Για τον ίδιο σκοπό μπορεί να χρησιμοποιηθεί και η εντολή disp(). Όλες οι πράξεις εκτελούνται εσωτερικά με διπλή ακρίβεια. Το μορφότυπο, ωστόσο, εμφάνισης των αποτελεσμάτων στην οθόνη μπορεί να ελεγχθεί με την εντολή format. Χωρίς παραμέτρους, η εντολή αυτή εμφανίζει την στάνταρντ μορφή, που για αριθμούς κινητής υποδιαστολής είναι η σύντομη μορφή (format short, 4 δεκαδικών ψηφίων, ή σε εκθετική μορφή, αν ο αριθμός είναι πολύ μεγάλος ή πολύ μικρός). Με την format long έχουμε εμφάνιση 15 δεκαδικών ψηφίων, ενώ η προσθήκη του e δίνει εκθετική μορφή. x=input( δώστε αριθμό: ); disp(x); format long; disp(x); format long e disp(x); 0.0030 0.003000000000000 3.000000000000000e-003 A.9 Γραφικές παραστάσεις Υπάρχει μια πληθώρα από συναρτήσεις για σχεδίαση δισδιάστατων ή τρισδιάστατων γραφικών παραστάσεων, καθώς και για προσθήκη τίτλων, ενδείξεων αξόνων κλπ. Η plot() είναι η περισσότερο χρησιμοποιούμενη. A.10 Αρχεία προγραμμάτων και συναρτήσεων Τα προγράμματα MATLAB αποθηκεύονται σε αρχεία απλού κειμένου (plain text) με το επίθημα.m (m-files). Τα ονόματα των m-files πρέπει να αρχίζουν με κάποιο γράμμα ακολουθούμενο από άλλα γράμματα, μέχρι 18, ή/και ψηφία ή και το χαρακτήρα υπογράμμισης (το μείον < > ή η τελεία <.> δεν επιτρέπονται). Υπάρχουν δύο είδη m-files: scripts και functions. Ένα script είναι ένα αυτόνομο, εκτελέσιμο πρόγραμμα, ενώ ένα function κωδικοποιεί μια συνάρτηση, η οποία καλείται από άλλες συναρτήσεις ή προγράμματα MATLAB και πρέπει να περιέχει στην πρώτη γραμμή κώδικα τη λέξη-κλειδί function. Μια άλλη σημαντική διαφορά μιας function

ΠΑΡΑΡΤΗΜΑ Α: Α-13 από ένα script είναι ότι χρησιμοποιεί δικό της χώρο μεταβλητών, ο οποίος και «καθαρίζεται» μετά το τέλος της συνάρτησης, ενώ ένα script χρησιμοποιεί το workspace του MATLAB. Στο παράδειγμα που ακολουθεί, υπολογίζεται και σχεδιάζεται η rms τιμή σήματος s, σε ολισθαίνον παράθυρο μήκους w δειγμάτων που εισάγεται κατά τον χρόνο εκτέλεσης. Η συνάρτηση root_mean_square() δέχεται διάνυσμα και υπολογίζει την rms τιμή των στοιχείων του. Πρέπει να βρίσκεται σε αρχείο με το όνομα root_mean_square.m, αποθηκευμένο στο τρέχον directory s=2+0.5*rand(1,80); % σήμα: σταθερά+θόρυβος p=[]; % Το διάνυσμα τιμών rms (προς το παρόν κενό) w=input('δώστε μήκος ολισθαίνοντος παραθύρου (άρτιο): '); t=w/2+1:length(s)-w/2; % σημεία για τον υπολογισμό της τιμής rms for i=1:length(t) z=s(t(i)-w/2:t(i)+w/2-1); p=[p root_mean_square(z)]; % το p αυξάνεται κατά μία τιμή end plot(t, s(w/2+1:length(s)-w/2), ':', t,p) title(['σήμα και τιμή rms υπολογισμένη σε παράθυρο '... num2str(w),' δειγμάτων']) grid; axis([0 length(s) min(s)-0.5 max(s)+0.5]); function p=root_mean_square(x) % υπολογίζει την rms τιμη του x p=sqrt(sum(x.^2)/length(x)); end Το εξαγόμενο του παραπάνω προγράμματος για w=16 είναι το παρακάτω σχήμα. σήμα και τιμή rms υπολογισμένη σε παράθυρο 16 δειγμάτων 3 2.5 2 1.5 1 0.5 0 0 10 20 30 40 50 60 70 80