ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙΔΙΟ MATLAB

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙΔΙΟ MATLAB"

Transcript

1 ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙΔΙΟ MATLAB ΚΩΝΣΤΑΝΤΙΝΟΣ ΔΙΑΜΑΝΤΑΡΑΣ Καθηγητής ΚΩΝΣΤΑΝΤΙΝΟΣ ΓΟΥΛΙΑΝΑΣ Επίκουρος Καθηγητής ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ Θεσσαλονίκη 2013 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 1

2 Περιεχόμενα 1. Τι Είναι το Matlab Δυνατότητες (Help: MATLAB->Getting Started ->Introduction->What Is MATLAB) Βιβλιοθήκες (Help: MATLAB->Functions -- Categorical List) Περιβάλλον Εργασίας (Help: MATLAB->Getting Started ->Desktop Tools and Development Environment) Εισαγωγή στο Matlab Βασικά Χαρακτηριστικά (Help: MATLAB->Programming) Μεταβλητές (Help: MATLAB->Programming-> Data Types) Μαθηματικές Συναρτήσεις Διανύσματα - Πίνακες στο Matlab Δημιουργία Διανυσμάτων (Help: MATLAB->Programming->Data Structures) Επεξεργασία Διανυσμάτων (Help: MATLAB->Functions by category->programming and Data Type- >Operators and Operations) Τελεστής του Ανάστροφου (Help:Search For: Transpose) Πρόσθεση - Αφαίρεση Διανυσμάτων Διαίρεση δύο Διανυσμάτων Το Εσωτερικό Γινόμενο δύο Διανυσμάτων Συναρτήσεις Διανυσμάτων Δημιουργία Πινάκων (Help: MATLAB->Programming->Data Structures) Επεξεργασία Πινάκων (Help: MATLAB->Functions by category->programming and Data Type- >Operators and Operations) Ανάστροφος Πίνακα 2 Διαστάσεων (Help:Search For: Transpose) Πράξεις μεταξύ Πινάκων και Διανυσμάτων Πράξεις μεταξύ Πινάκων Πρόσθεση - Αφαίρεση Πινάκων Πολλαπλασιασμός Πινάκων Διαίρεση Πινάκων Επιλογή Τμήματος Πίνακα Συνένωση Πινάκων Πίνακες Χαρακτήρων ( strings ) - cells Συναρτήσεις σε Πίνακες Δομές (Structures) (Help: MATLAB->External Interfaces->MATLAB Interface to Generic DLL->Data Conversion->Structures) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 2

3 4. Προγραμματισμός στο Matlab Scripts (Help: Search for: script) Matlab Search Path (Help: MATLAB->Programming->Programming Tips->MATLAB Path) Είσοδος Τιμών από το Πληκτρολόγιο (Help:Search For: Input) Εμφάνιση Τιμών Μεταβλητών (Help:Search For: fprintf, disp) Η Εντολή if-else (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η Εντολή switch (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η Εντολή while (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η Εντολή for (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Λογικοί Τελεστές (Help: MATLAB->Programming->Basic Program Components->Operators) Συναρτήσεις (Functions) (Help: MATLAB->Getting Started->Programming->Scripts and Functions- > Functions) Αρχεια Κειμενου στο Matlab Επεξεργασία Αρχείων Κειμένου (Help:Search For: Writing Text Data, Reading Text Data, fscanf, fprintf) Compiler & Debugger για M-Files Interpreter και Compiler (Help: MATLAB Compiler) Ο Editor/Debugger (Help: MATLAB -> Desktop Tools and Development Environment -> Editing and Debugging M-Files) Γραφικές Παραστάσεις Γραφικές Παραστάσεις 2 Διαστάσεων Εντολή plot Σύμβολα, Χρώματα και Γραμμές Η Εντολή hold on Η Εντολή subplot Αφαίρεση Αξόνων από Γράφημα ( Εντολή axis off ) Εισαγωγή Εικόνας σε Γράφημα ( Εντολές imread, image ) Εισαγωγή Κειμένου σε Γράφημα ( Εντολή gtext ) Αποθήκευση Γραφήματος σε μορφή pdf, tiff, Η Εντολή bar Η Εντολή stem Η Εντολή pause Γραφικές Παραστάσεις 3 Διαστάσεων Η Εντολή meshgrid Η Εντολή contour Η Εντολή meshc Η Εντολή surf Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 3

4 ΚΕΦΑΛΑΙΟ 1 ΤΙ ΕΙΝΑΙ ΤΟ MATLAB 1.1 Δυνατότητες (Help: MATLAB->Getting Started ->Introduction->What Is MATLAB) Το MATLAB ( MATrix LABoratory ) είναι ένα εργαλείο το οποίο αρχικά σχεδιάστηκε για μαθηματικό προγραμματισμό και το οποίο χρησιμοποιείται σήμερα ευρύτατα στην επιστημονική κοινότητα. Ωστόσο το MATLAB προσφέρει πάρα πολλές δυνατότητες στον προγραμματιστή, ώστε να μπορεί να θεωρηθεί πλέον ένα πολύ ισχυρό εργαλείο γενικού προγραμματισμού. Μερικά από τα κυριότερα χαρακτηριστικά του είναι : Προγραμματισμός σε γλώσσα scripting που μοιάζει πολύ με τη γλώσσα C. Τα αρχεία script έχουν κατάληξη.m. Εκτέλεση εντολών σε command line από interpreter για γρήγορη δοκιμή ενός προγράμματος, μιας εφαρμογής, ή μιας ιδέας. Δυνατότητα εκτέλεσης ενός script από το command line γράφοντας απλώς το όνομα του αρχείου script με ή χωρίς την κατάληξη.m. Δυνατότητα δημιουργίας αρχείων exe με χρήση compiler. Εύκολη διαχείριση πινάκων (matrices) και διανυσμάτων (vectors). Ολοκληρωμένο περιβάλλον editor/debugger (medit.exe). Καλείται από το κεντρικό παράθυρο του MATLAB όταν ζητήσουμε να ανοίξουμε ή να δημιουργήσουμε ένα νέο αρχείο, μπορεί όμως να εκτελεστεί και ως ανεξάρτητο πρόγραμμα. Εξαιρετικές δυνατότητες δημιουργίας γραφικών παραστάσεων εύκολα και γρήγορα. Γραφικές παραστάσεις 2, και 3 διαστάσεων. Προχωρημένες δυνατότητες όπως 3-D φωτισμός, αλλαγή οπτικής γωνίας, δημιουργία εικονοσειρών, κ.α.. Γραφικός προγραμματισμός. Δυνατότητα σχεδιασμού παραθύρων, κουμπιών, γραφικών μενού, κ.λ.π.. Πλήρης γκάμα δυνατοτήτων για σχεδιασμό Graphical User Interfaces (GUI). Εξαιρετικό εργαλείο βοήθειας Help. Με τόσες δυνατότητες που προσφέρει το MATLAB είναι πολύ εύκολο να ξεχάσεις τα ακριβή ορίσματα μιας συνάρτησης ή το όνομα της συνάρτησης που εκτελεί μια συγκεκριμένη εργασία. Το εργαλείο Help του MATLAB είναι πλήρες, λεπτομερές, εύχρηστο και εύκολο στην αναζήτηση της πληροφορίας που χρειάζεται ο χρήστης, ενώ περιέχει παραδείγματα και demos. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 4

5 1.2 Βιβλιοθήκες (Help: MATLAB->Functions -- Categorical List) Το MATLAB περιέχει μεγάλο πλήθος έτοιμων βιβλιοθηκών. Οι standard βιβλιοθήκες προσφέρουν έτοιμες συναρτήσεις για επεξεργασία αριθμών, διανυσμάτων, πινάκων, για δημιουργία plots, κ.λ.π.. Υπάρχει επίσης μεγάλη σειρά ειδικών βιβλιοθηκών που λέγονται εργαλειοθήκες (toolboxes) και ειδικεύονται σε μια επιστημονική περιοχή. Μερικά από τα πιο σημαντικά toolboxes είναι: Signal processing toolbox Image processing toolbox Neural networks toolbox Fuzzy Logic toolbox Statistics toolbox Optimization toolbox Communications toolbox Virtual Reality toolbox Database toolbox Control toolbox Symbolic math toolbox Financial toolbox Mapping toolbox Wavelet toolbox 1.3 Περιβάλλον Εργασίας (Help: MATLAB->Getting Started ->Desktop Tools and Development Environment) Η Εικόνα 1.1 δείχνει το βασικό παράθυρο εργασίας του MATLAB, το οποίο περιλαμβάνει :. Το Command Wndow, στο οποίο μπορούμε να πληκτρολογήσουμε το όνομα ενός εκτελέσιμου αρχείου, μια εντολή ή να δούμε τα αποτελέσματα των παραπάνω. Το Ιστορικό των εντολών που έχουμε δώσει στο Command Line, τις οποίες μπορούμε επίσης να ανακαλέσουμε απ το Command Window με τα βελάκια πάνωκάτω. Το Current Directory, το οποίο μπορούμε να το αλλάξουμε, αντί για το default C:\MATLAB\work. Τα περιεχόμενα του Current Directory, από όπου μπορούμε να ανοίξουμε με τον Editor ένα οποιοδήποτε αρχείο. Τα μενού File και Edit με τις αντίστοιχες λειτουργίες και δυνατότητες. Το μενού View, με τo οποίο επιλέγουμε τα παράθυρα που θα εμφανίζονται. Έτσι, μπορούμε να ανοίξουμε το παράθυρο Workspace, στο οποίο βλέπουμε τις μεταβλητές που έχουμε ορίσει και το χώρο που καταλαμβάνουν στη μνήμη καθώς και το παράθυρο Profiler που είναι ένα χρήσιμο εργαλείο για τη βελτιστοποίηση του κώδικά μας. Για ένα συγκεκριμένο πρόγραμμα (script) μας δείχνει πόσος χρόνος CPU σπαταλήθηκε από κάθε γραμμή του κώδικα, πόσες φορές εκτελέστηκε κάθε loop, κ.λ.π.. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 5

6 Περιεχόμενα του current directory Αλλαγή current directory Ιστορικό χρήσης εντολών command line για γρήγορη ανάκληση Παράθυρο command line Εικόνα 1.1 Το μενού-παράθυρο Help, ένα ολοκληρωμένο περιβάλλον αναζήτησης πληροφορίας μέσα στο πλήθος των εργαλειοθηκών, των εντολών, και των συναρτήσεων του MATLAB (Εικόνα 1.2) : Εικόνα 1.2 Στο παράθυρο αυτό μπορεί κανείς να αναζητήσει πληροφορίες : Κάνοντας πλοήγηση στον πίνακα περιεχομένων (Contents) Από τον ονομαστικό κατάλογο των εντολών/συναρτήσεων (Index) Με αναζήτηση με λέξεις κλειδιά (Search) Από προγράμματα επίδειξης (Demos) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 6

7 ΚΕΦΑΛΑΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB 2.1 Βασικά Χαρακτηριστικά (Help: MATLAB->Programming) Το MATLAB είναι εξοπλισμένο με μια γλώσσα προγραμματισμού που μοιάζει πολύ με τη γλώσσα C. Η γλώσσα αυτή μπορεί να χρησιμοποιηθεί είτε στο command line για να γράφουμε μια-μια τις εντολές που θέλουμε να εκτελέσουμε είτε σε ένα αρχείο script με την κατάληξη.m. Με το που ξεκινάμε το MATLAB στο παράθυρο command line εμφανίζεται το prompt >> έτοιμο να δεχτεί τις εντολές που θα πληκτρολογήσουμε. Γραμμές εντολών Αν βρισκόμαστε στο command line μια γραμμή εντολών τελειώνει πατώντας <ENTER>. Αν γράφουμε κώδικα σε ένα αρχείο script μια γραμμή εντολών τελειώνει με new line. Αν μια εντολή είναι μεγάλη σε μήκος ή θέλουμε για οποιοδήποτε λόγο να την σπάσουμε σε πολλές γραμμές χρησιμοποιούμε τρεις τελείες. Οι τρεις τελείες σημαίνουν ότι η εντολή συνεχίζεται στην επόμενη γραμμή. Για παράδειγμα, ο παρακάτω κώδικας : fprintf('τιμές: Δευτέρα=%d, Τρίτη=%d, Τετάρτη=%d\n',... p1,... p2,... p3); αντιστοιχεί στην εντολή fprintf('τιμές: Δευτέρα=%d, Τρίτη=%d, Τετάρτη=%d\n', p1, p2, p3); Όπως το UNIX και η C, το MATLAB είναι ευαίσθητο στα μικρά και στα κεφαλαία γράμματα (case sensitive). Έτσι η μεταβλητή A δεν είναι ίδια με την μεταβλητή a. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 1

8 Σχόλια Τα σχόλια ξεκινούν με το σύμβολο % «επί τοις εκατό» και τελειώνουν στο τέλος της γραμμής. Μια ολόκληρη γραμμή είναι σχόλιο αν ξεκινάει με % Η χρήση του ; (semicolon) (Help: MATLAB->Programming->Basic Program Components -> Symbol Reference). Το σύμβολο ; στο τέλος μιας εντολής αποτρέπει την εμφάνιση του περιεχομένου μιας μεταβλητής στην οθόνη. Για παράδειγμα, η εντολή y = 3 θα κάνει την ανάθεση της τιμής 3 στο y και θα εμφανίσει στην οθόνη το εξής μήνυμα: y = 3 ενώ η εντολή y = 3; θα κάνει την ανάθεση της τιμής 3 στο y χωρίς να εμφανίσει τίποτα στην οθόνη. Βασικές πράξεις - Τελεστές (Help: MATLAB->Programming->Basic Program Components->Operators) Το MATLAB μπορεί να χρησιμοποιηθεί σαν μια απλή αριθμομηχανή χρησιμοποιώντας τις παρακάτω βασικές πράξεις ( Πίνακας 1 ). Σύμβολο + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση ^ Ύψωση σε δύναμη Πράξη Πίνακας 1 Παράδειγμα 1 >> Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 8

9 Παράδειγμα 2 >> Παράδειγμα 3 >> 15 * 2 30 Παράδειγμα 4 >> 20 / 2 10 Παράδειγμα 5 >> 2 ^ 3 8 Παρατήρηση Για την ακέραια διαίρεση μπορεί να χρησιμοποιηθεί ο τελεστής mod με παραμέτρους το Διαιρετέο και το Διαιρέτη, ο οποίος επιστρέφει το υπόλοιπο της διαίρεσης των 2 ακεραίων ή πραγματικών αριθμών. Παράδειγμα 1 >> mod(7,2) 1 Παράδειγμα 2 >> mod(6.5,2.5) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 9

10 Προτεραιότητα πράξεων (Help: MATLAB->Programming->Basic Program Components->Operators- >Operator Precedence) Η προτεραιότητα των πράξεων στο MATLAB είναι ανάλογη με τους κανόνες προτεραιότητας των πράξεων της άλγεβρα. 1. Πρώτα εκτελούνται οι πράξεις στις παρενθέσεις από μέσα προς τα έξω. 2. Μετά εκτελούνται οι υψώσεις σε δύναμη. 3. Μετά εκτελούνται οι πολλαπλασιασμοί και οι διαιρέσεις από δεξιά προς τα αριστερά. 4. Τέλος εκτελούνται οι προσθέσεις και οι αφαιρέσεις από δεξιά προς τα αριστερά. Τελεστές Συσχέτισης (Help: MATLAB->Programming->Basic Program Components->Operators) Υπάρχουν οι παρακάτω τελεστές συσχέτισης, οι οποίοι σε απλές μεταβλητές επιστρέφουν την τιμή 1, αν η συσχέτιση είναι αληθής και το 0, αν δεν ισχύει : ( Πίνακας 2 ). Σύμβολο == Ίσον ~= Διάφορο > Μεγαλύτερο >= Μεγαλύτερο ή Ίσον < Μικρότερο <= Μικρότερο ή Ίσον Σύγκριση Πίνακας 2 Παράδειγμα 1 >> a = 1 a = 1 >> a > 0 1 Παράδειγμα 2 >> a < 0 0 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 10

11 Παράδειγμα 3 >> a == Μεταβλητές (Help: MATLAB->Programming-> Data Types) Όπως και στη C, οι μεταβλητές μπορούν να έχουν διάφορους τύπους, για παράδειγμα double, char, string, logical, κ.λ.π.. Αντίθετα με την C, ο τύπος των μεταβλητών του MATLAB που πρόκειται να χρησιμοποιηθούν παρακάτω στο πρόγραμμα δεν χρειάζεται να έχει δηλωθεί εκ των προτέρων. Έτσι π.χ., η εντολή >> x = 3; δημιουργεί αυτομάτως μια μεταβλητή x στο χώρο της μνήμης του προγράμματος (workspace) που έχει τον τύπο double. Αντίστοιχα η εντολή >> s = 'Hello!'; δημιουργεί αυτομάτως μια μεταβλητή τύπου string. Αν θέλουμε, μπορούμε να αλλάξουμε τον τύπο μιας μεταβλητής δίνοντάς της μια τιμή άλλου τύπου, ασχέτως ποιος ήταν ο προηγούμενος τύπος της μεταβλητής. Το MATLAB αλλάζει δυναμικά τον τύπο της καθώς τρέχει το πρόγραμμα ανάλογα με τις εντολές μας. Για παράδειγμα, με την εντολή >> a = 5.46; η μεταβλητή a έχει την double τιμή 5.46, ενώ με την εντολή >> a = 'King Kong'; η μεταβλητή a γίνεται τύπου string με τιμή 'King Kong' και η παλιά της τιμή τύπου double χάνεται. Για τη μετατροπή πραγματικών αριθμών σε ακέραιους ( όπως και στοιχείων πινάκων ), μπορούν να χρησιμοποιηθούν οι παρακάτω συναρτήσεις : Συνάρτηση fix(x) round(x) ceil(x) floor(x) Αποτέλεσμα Αποκοπή του δεκαδικού μέρους Στρογγύλευση στον πλησιέστερο ακέραιο Στρογγύλευση στον πλησιέστερο μεγαλύτερο ακέραιο του x Στρογγύλευση στον πλησιέστερο μικρότερο ακέραιο του x Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 11

12 Παραδείγματα Εντολή Αποτέλεσμα >> b = fix(3.4) b = 3 >> b = fix(3.9) b = 3 >> b = fix(-3.4) b = -3 >> b = fix(-3.9) b = -3 >> b = round(3.4) b = 3 >> b = round(3.9) b = 4 >> b = round(-3.4) b = -3 >> b = round(-3.9) b = -4 >> b = ceil(3.4) b = 4 >> b = ceil(3.9) b = 4 >> b = ceil(-3.4) b = -3 >> b = ceil(-3.9) b = -3 >> b = floor(3.4) b = 3 >> b = floor(3.9) b = 3 >> b = floor(-3.4) b = -4 >> b = floor(-3.9) b = Μαθηματικές Συναρτήσεις Το Matlab διαθέτει μια πλούσια βιβλιοθήκη με μαθηματικές συναρτήσεις, μερικές απ τις οποίες φαίνονται στον πίνακα που ακολουθεί : Συνάρτηση Αποτέλεσμα abs(x) Απόλυτη Τιμή sqrt(x) Τετραγωνική Ρίζα exp(x) x e Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 12

13 log(x) log10(x) sin(x) cos(x) tan(x) tanh(x) ln(x) log 10 x Ημίτονο Συνημίτονο Εφαπτομένη Υπερβολική Εφαπτομένη Πίνακας 3 Παράδειγμα 1 >> 1/(1+exp(-0.5)) Παράδειγμα 2 >> (exp(0.5)-exp(-0.5))/(exp(0.5)+exp(-0.5)) Παράδειγμα 3 >> tanh(0.5) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 13

14 ΚΕΦΑΛΑΙΟ 3 ΔΙΑΝΥΣΜΑΤΑ - ΠΙΝΑΚΕΣ ΣΤΟ MATLAB 3.1 Δημιουργία Διανυσμάτων (Help: MATLAB->Programming->Data Structures) Τα διανύσματα και οι πίνακες μπορούν πολύ εύκολα να αναπαρασταθούν στο MATLAB χωρίς να χρειάζεται να δηλωθούν εκ των προτέρων. Ένα διάνυσμα μπορεί να πάρει τιμές με τους παρακάτω τρόπους : 1 ος Τρόπος Με ανάθεση τιμών, όπως στη C. Παράδειγμα 1 >> a = [1, -3, 2] Το αποτέλεσμα της προηγούμενης εντολής είναι η δημιουργία ενός διανύσματος γραμμής ή ενός πίνακα 1x3 ( 1 γραμμή, 3 στήλες ) : a = Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : >> a = [1-3 2] Παρατήρηση Μπορούμε να προσπελάσουμε το στοιχείο 1 του διανύσματος a γράφοντας a(1) ( με τιμή 1 ) και γενικά το στοιχείο i του διανύσματος a γράφοντας a(i). Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 14

15 Παράδειγμα 2 >> b = [1; -3; 2] Το αποτέλεσμα της προηγούμενης εντολής είναι η δημιουργία ενός διανύσματος στήλης ή ενός πίνακα 3x1 ( 3 γραμμές, 1 στήλη ) : b = Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : >> b = [1-3 2] Παρατηρήσεις Tο «,» διαχωρίζει τα στοιχεία ενός διανύσματος ή πίνακα που βρίσκονται στην ίδια γραμμή ενώ το ; (ελληνικό ερωτηματικό) δείχνει αλλαγή γραμμής. Το αν ένα διάνυσμα έχει δηλωθεί σαν γραμμή ή στήλη παίζει σημαντικό ρόλο στο γινόμενο διανύσματος επί διάνυσμα ή διανύσματος επί πίνακα. 2 ος Τρόπος Δημιουργώντας αριθμούς στη σειρά δίνοντας αρχή, τέλος, και προαιρετικά το βήμα. Αν παραβλέψουμε το βήμα τότε αυτό θεωρείται ίσο με 1. Στα παραδείγματα που ακολουθούν η αρχή, το τέλος και το βήμα μπορούν να είναι μεταβλητές ή σταθερές : Παράδειγμα 1 >> a = 0; step = 2; b = 6; >> x = a : step : b x = Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 15

16 >> x = 0 : 2 : 6 x = Παράδειγμα 2 >> x = a : b x = Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : >> x = 0 : 6 x = Παράδειγμα 3 >> y = 35 : -5 : 10 y = ος Τρόπος Με τις συναρτήσεις rand, randn, zeros, ones, linspace, logspace. Οι συναρτήσεις rand και randn Οι συναρτήσεις rand και randn δίνουν την δυνατότητα δημιουργίας τυχαίων αριθμών και απαιτούν δύο ορίσματα, το πλήθος των γραμμών και των στηλών του πίνακα που δημιουργείται. Η συνάρτηση rand παράγει τυχαίους αριθμούς με ομοιόμορφη κατανομή μεταξύ 0 και 1. Η συνάρτηση randn παράγει τυχαίους αριθμούς με Γκαουσσιανή κατανομή με μέση τιμή 0 και διασπορά 1 ( γνωστή σαν «κανονική κατανομή» ). Παράδειγμα 1 >> x = rand(1,3); % Δημιουργεί τον πίνακα x με 1 γραμμή και 3 στήλες και τυχαίες τιμές στο (0,1). Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 16

17 x = Παράδειγμα 2 >> x = rand(3,1); % Δημιουργεί τον πίνακα x με 3 γραμμές και 1 στήλη και τυχαίες τιμές στο (0,1). x = Παράδειγμα 3 >> x = rand(1,1); % Δημιουργεί τον πίνακα x με 1 γραμμή και 1 στήλη ( απλή μεταβλητή ) και τυχαία τιμή στο (0,1). Παράδειγμα 4 >> x = randn(1,3); % Δημιουργεί τον πίνακα x με 1 γραμμή και 3 στήλες και τυχαίες τιμές με Γκαουσσιανή κατανομή. x = Οι συναρτήσεις zeros, ones Οι συναρτήσεις zeros, ones γεμίζουν έναν πίνακα με μηδενικά ή μονάδες. Παράδειγμα 1 >> x = zeros (1,3); % Δημιουργεί τον πίνακα x με 1 γραμμή και 3 στήλες και τιμές 0 Παράδειγμα 2 >> x = ones (3,1); % Δημιουργεί τον πίνακα x με 3 γραμμές και 1 στήλη και τιμές 1 Οι συναρτήσεις linspace, logspace Η συνάρτηση linspace(<αρχή>, <τέλος>, <αριθμός στοιχείων>) δημιουργεί ένα διάνυσμα με στοιχεία όσα και ο <αριθμός στοιχείων> με τιμές από την <αρχή> μέχρι το <τέλος>. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 17

18 Η συνάρτηση logspace(<αρχή>, <τέλος>, <αριθμός στοιχείων>) δημιουργεί ένα διάνυσμα με στοιχεία όσα και ο <αριθμός στοιχείων> με τιμές το 10 υψωμένο στη δύναμη από την <αρχή> μέχρι το <τέλος>. Παράδειγμα 1 >> a = linspace(0,10,5) a = Παράδειγμα 2 >> a = logspace(0,4,5) a = Επεξεργασία Διανυσμάτων (Help: MATLAB->Functions by category->programming and Data Type- >Operators and Operations) Το MATLAB προσφέρει βασικές λειτουργίες δημιουργίας και επεξεργασίας πινάκων. Τα διανύσματα είναι απλώς ειδικές περιπτώσεις πινάκων όπου η μια διάσταση έχει μήκος 1. Οι πράξεις μεταξύ διανυσμάτων και αριθμών είναι απλούστατες και χρησιμοποιούν τους τελεστές των βασικών πράξεων : Πρόσθεση αριθμού σε διάνυσμα : >> a = [1 2 3] a = >> a Αφαίρεση αριθμού από διάνυσμα : >> a Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 18

19 Πολλαπλασιασμός διανύσματος με σταθερά : >> a* Διαίρεση διανύσματος με σταθερά : >> a/ Ύψωση διανύσματος σε δύναμη : >> a^2??? Error using ==> mpower Matrix must be square. Παρατηρήσεις Ό τελεστής ^ όταν χρησιμοποιείται σε διανύσματα ή πίνακες ισοδυναμεί με τον πολλαπλασιασμό του διανύσματος ή πίνακα με τον εαυτό του, τόσες φορές, όσες είναι η τιμή του εκθέτη. Στο προηγούμενο παράδειγμα, η εντολή a^2 ισοδυναμεί με το a*a, το οποίο δεν μπορεί να γίνει, γιατί το διάνυσμα έχει διάσταση 1x3. Για να υψωθεί κάθε στοιχείο του διανύσματος a στο τετράγωνο, θα πρέπει ο τελεστής ^ να χρησιμοποιηθεί με την τελεία., δηλαδή : Παράδειγμα >> a.^ Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 19

20 3.2.1 Τελεστής του Ανάστροφου (Help:Search For: Transpose) Στα μαθηματικά ένα διάνυσμα συμβολίζεται με ένα μικρό γράμμα boldface, πχ., a, b, c, d,... και αποτελείται από n στοιχεία γραμμένα ανάμεσα σε τετράγωνες αγκύλες [ ]. Κατά πάγια σύμβαση των μαθηματικών θεωρείται ότι ένα διάνυσμα είναι μια στήλη και όχι μια γραμμή. Φυσικά μπορούμε να μετατρέψουμε τη στήλη σε γραμμή και τη γραμμή σε στήλη χρησιμοποιώντας τον τελεστή του αναστρόφου (transpose) που συμβολίζεται στα μαθηματικά με το γράμμα T υψωμένο σε εκθέτη. Στο MATLAB για την αναστροφή χρησιμοποιείται το σύμβολο ' : Παράδειγμα 1 >> a = [1 2 3] a = >> a' Πρόσθεση - Αφαίρεση Διανυσμάτων Για να γίνει η Πρόσθεση ή η Αφαίρεση 2 διανυσμάτων θα πρέπει να έχουν δηλωθεί και τα 2 σαν διανύσματα-γραμμές ή στήλες, διαφορετικά θα πρέπει να χρησιμοποιηθεί στο ένα απ αυτά ο τελεστής του αναστρόφου και το νέο διάνυσμα που προκύπτει περιέχει το άθροισμα ή τη διαφορά των αντίστοιχων στοιχείων των 2 διανυσμάτων. Παράδειγμα 1 >> a = [1 2 3] a = >> b = [4 5 6] b = >> c= [7;8;9] Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 20

21 c = >> a+b Παράδειγμα 2 >> a-b Παράδειγμα 3 >> a+c Διαίρεση δύο Διανυσμάτων Για να γίνει η Διαίρεση 2 διανυσμάτων χρησιμοποιείται ο τελεστής «./». Τα διανύσματα θα πρέπει να έχουν δηλωθεί και τα 2 σαν διανύσματα-γραμμές ή στήλες, διαφορετικά θα πρέπει να χρησιμοποιηθεί στο ένα απ αυτά ο τελεστής του αναστρόφου και το νέο διάνυσμα που προκύπτει περιέχει το πηλίκο των αντίστοιχων στοιχείων των 2 διανυσμάτων. Παράδειγμα >> a./b Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 21

22 3.2.4 Το Εσωτερικό Γινόμενο δύο Διανυσμάτων Η έννοια του εσωτερικού γινομένου είναι θεμελιώδης στη γραμμική άλγεβρα και θα μας φανεί ιδιαίτερα χρήσιμη. Σύμφωνα με τον ορισμό του το εσωτερικό γινόμενο δύο διανυσμάτων a και b είναι το άθροισμα του γινομένου των στοιχείων τους. Αν τα στοιχεία του διανύσματος a είναι a(1), a(2),, a(n) και τα στοιχεία του διανύσματος b είναι b(1), b(2),, b(n) το εσωτερικό τους γινόμενο θα είναι το a(1)*b(1) + a(2) *b(2) + + a(n) *b(n). Για να γίνει ο πολλαπλασιασμός στο Matlab θα πρέπει οι στήλες του αριστερού διανύσματος να είναι όσες και οι γραμμές του δεξιού. Με άλλα λόγια το αριστερό διάνυσμα πρέπει να είναι μια γραμμή n στοιχείων ενώ το δεξί πρέπει να είναι μια στήλη n στοιχείων. Προφανώς τα δύο διανύσματα πρέπει να έχουν το ίδιο πλήθος στοιχείων, δηλαδή το ίδιο μήκος. Παρατηρήσεις Το εσωτερικό γινόμενο είναι ένας απλός αριθμός, (όχι διάνυσμα). Αν τα 2 διανύσματα a, b είναι γραμμές, το δεξί (b) πρέπει να αναστραφεί για να γίνει στήλη, ενώ το αριστερό (a) μένει ως έχει. Αν τα 2 διανύσματα a, b είναι στήλες, το αριστερό (a) πρέπει να αναστραφεί για να γίνει γραμμή ενώ το δεξί (b) μένει ως έχει. Παράδειγμα 1 >> a1=[1 2 3] a1 = >> a2=[4;5;6] a2 = >> b1=[7 8 9] b1 = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 22

23 >> b2=[10;11;12] b2 = >> a1*b1??? Error using ==> mtimes Inner matrix dimensions must agree. Παρατήρηση Επειδή τα 2 διανύσματα a1, b1 είναι γραμμές, θα πρέπει να αντιστραφεί το b1 : Παράδειγμα 2 >> a1*b1' 50 Το εσωτερικό τους γινόμενο είναι 1*7 + 2*8 + 3*9 = = 50 Παράδειγμα 3 >> a1*b2 68 Παράδειγμα 4 >> b2*a2??? Error using ==> mtimes Inner matrix dimensions must agree. Παρατήρηση Επειδή τα 2 διανύσματα b2, a2 είναι στήλες, θα πρέπει να αντιστραφεί το b2 : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 23

24 Παράδειγμα 5 >> b2'*a2 167 Παρατήρηση Μπορούμε να χρησιμοποιήσουμε και τη συνάρτηση dot για τον υπολογισμό του εσωτερικού γινομένου, όπου δεν έχει σημασία αν τα διανύσματα είναι γραμμές ή στήλες : Παράδειγμα 6 >> dot(a1,a2) 32 Παράδειγμα 7 >> dot(a1,b1) 50 Παράδειγμα 8 >> dot(a2,b2) Συναρτήσεις Διανυσμάτων Το Matlab διαθέτει τις παρακάτω συναρτήσεις, οι οποίες έχουν σαν όρισμα ένα διάνυσμα : Τη συνάρτηση length, η οποία επιστρέφει το μήκος ( αριθμό στοιχείων ) του διανύσματος. Παράδειγμα >> a = [1 4 8]; Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 24

25 >> n = length(a) n = 3 Τη συνάρτηση max, η οποία επιστρέφει την τιμή του μεγίστου στοιχείου του διανύσματος. Παράδειγμα >> max_el = max(a) max_el = 8 Παρατήρηση Αν θέλουμε η συνάρτηση max να μας επιστρέψει και τη θέση του μεγίστου στοιχείου, χρησιμοποιούμε μια ακόμη μεταβλητή για τη θέση και τις βάζουμε σε αγκύλες, όπως φαίνεται στο παράδειγμα που ακολουθεί : Παράδειγμα >> [max_el thesi_max] = max(a) max_el = thesi_max = 8 3 Τη συνάρτηση min, η οποία επιστρέφει την τιμή του ελαχίστου στοιχείου του διανύσματος. Παράδειγμα >> min_el = min(a) min_el = 1 Παρατήρηση Αν θέλουμε η συνάρτηση min να μας επιστρέψει και τη θέση του ελαχίστου στοιχείου, χρησιμοποιούμε μια ακόμη μεταβλητή για τη θέση και τις βάζουμε σε αγκύλες, όπως φαίνεται στο παράδειγμα που ακολουθεί : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 25

26 Παράδειγμα >> [min_el thesi_min] = min(a) min_el = 1 thesi_min = 1 Τη συνάρτηση sum, η οποία επιστρέφει το άθροισμα των στοιχείων του διανύσματος. Παράδειγμα >> sum(a) 13 Τη συνάρτηση prod, η οποία επιστρέφει το γινόμενο των στοιχείων του διανύσματος. Παράδειγμα >> prod(a) 32 Τη συνάρτηση norm, η οποία επιστρέφει την ευκλείδια νόρμα του διανύσματος, δηλαδή την τετραγωνική ρίζα του αθροίσματος των στοιχείων του διανύσματος υψωμένα στο τετράγωνο. Παράδειγμα >> n = norm(a) n = 9 ( = η ρίζα του 81 = ) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 26

27 Τη συνάρτηση sort, η οποία επιστρέφει τα στοιχεία του διανύσματος ταξινομημένα. Παράδειγμα >> a = [1 3-2] a = >> sort(a) Τη συνάρτηση find, η οποία επιστρέφει τις θέσεις των στοιχείων του διανύσματος τα οποία ικανοποιούν μια συνθήκη. Παράδειγμα 1 >> a = [1 3-2]; >> find(a>0) 1 2 επειδή τα στοιχεία a(1) = 1 και a(2) = 3 είναι μεγαλύτερα απ το μηδέν. Παράδειγμα 2 >> find(a==-2) 3 επειδή το στοιχείο a(3) = -2. Παρατήρηση Οι βασικές μαθηματικές συναρτήσεις του Πίνακα 3, αν χρησιμοποιηθούν σε διανύσματα, έχουν σαν αποτέλεσμα τη δημιουργία ενός νέου διανύσματος με στοιχεία το αποτέλεσμα της εφαρμογής της συνάρτησης σε κάθε στοιχείο του αρχικού διανύσματος. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 27

28 Παράδειγμα >> a = [1 2 3] a = >> sqrt(a) Δημιουργία Πινάκων (Help: MATLAB->Programming->Data Structures) Ένας πίνακας 2 διαστάσεων μπορεί να πάρει τιμές με τους παρακάτω τρόπους : 1 ος Τρόπος Με ανάθεση τιμών, όπως στη C. Παράδειγμα >> Α = [1, 2, 3; 4, 5, 6] Το αποτέλεσμα της προηγούμενης εντολής είναι η δημιουργία ενός πίνακα 2x3 ( 2 γραμμές, 3 στήλες ) : A = Παρατηρήσεις Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : >> Α = [ ] ή με την εντολή : >> A = [1 2 3;4 5 6] Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 28

29 Μπορούμε να προσπελάσουμε το στοιχείο (i,j) του πίνακα Α γράφοντας Α(i,j). Οι πίνακες πρέπει να αποτελούνται από γραμμές του ιδίου μήκους, αλλιώς έχουμε σφάλμα. 2 ος Τρόπος Δημιουργώντας αριθμούς στη σειρά δίνοντας αρχή, τέλος, και προαιρετικά το βήμα, όπως και στα διανύσματα : Παράδειγμα >> A = [1:3;4:6] A = ος Τρόπος Με τις συναρτήσεις rand, randn, zeros, ones : Παράδειγμα 1 >> A = rand(2,3) % Δημιουργεί τον πίνακα Α με 2 γραμμές και 3 στήλες και τυχαίες τιμές στο (0,1). A = Παράδειγμα 2 >> A = rand(2,2) % Δημιουργεί τον πίνακα Α με 2 γραμμές και 2 στήλες και τυχαίες τιμές στο (0,1). A = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 29

30 Παρατήρηση Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : >> A = rand(2) Παράδειγμα 3 >> A = randn(2) % Δημιουργεί τον πίνακα Α με 2 γραμμές και 2 στήλες και τυχαίες τιμές με Γκαουσσιανή κατανομή. A = Παράδειγμα 4 >> Α = zeros (3,3) % Δημιουργεί τον πίνακα Α με 3 γραμμές και 3 στήλες και τιμές 0 Παρατήρηση Το ίδιο αποτέλεσμα θα είχαμε με την εντολή : >> Α = zeros (3); Παράδειγμα 5 >> x = ones (3,4); % Δημιουργεί τον πίνακα Α με 3 γραμμές και 4 στήλες και τιμές 1 Παρατήρηση Σημειώστε ότι το MATLAB επιτρέπει επίσης την δημιουργία 3- διάστατων, 4- διάστατων πινάκων, κ.λ.π Επεξεργασία Πινάκων (Help: MATLAB->Functions by category->programming and Data Type- >Operators and Operations) Το MATLAB προσφέρει βασικές λειτουργίες δημιουργίας και επεξεργασίας πινάκων. Οι πράξεις μεταξύ διανυσμάτων και αριθμών είναι απλούστατες και χρησιμοποιούν τους τελεστές των βασικών πράξεων : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 30

31 Πρόσθεση αριθμού σε Πίνακα : >> A = [1 2 3;4 5 6] A = >> A Αφαίρεση αριθμού από Πίνακα : >> Α Πολλαπλασιασμός σταθεράς με Πίνακα : >> Α* Διαίρεση Πίνακα με σταθερά : >> Α/ Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 31

32 Ύψωση Πίνακα σε δύναμη : >> Α^2??? Error using ==> mpower Matrix must be square. Παρατηρήσεις Η εντολή Α^2 ισοδυναμεί με το Α*Α, το οποίο δεν μπορεί να γίνει, γιατί ο Πίνακας έχει διάσταση 2x3. Για να υψωθεί κάθε στοιχείο του Πίνακα Α στο τετράγωνο, θα πρέπει ο τελεστής ^ να χρησιμοποιηθεί με την τελεία., δηλαδή : >> Α.^ Ύψωση Τετραγωνικού Πίνακα σε δύναμη : Αν ο Πίνακας είναι Τετραγωνικός ( ίδιος αριθμός γραμμών-στηλών ), ο τελεστής «^» μπορεί να χρησιμοποιηθεί χωρίς την τελεία : Παράδειγμα >> B = [1:2;3:4] B = >> B^ Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 32

33 3.4.1 Ανάστροφος Πίνακα 2 Διαστάσεων (Help:Search For: Transpose) Όπως και στα διανύσματα, με τον τελεστή του αναστρόφου οι γραμμές του Πίνακα γίνονται στήλες και οι στήλες του γραμμές : Παράδειγμα >> A = [1 2 3;4 5 6] A = >> A' Πράξεις μεταξύ Πινάκων και Διανυσμάτων Για να γίνει ο πολλαπλασιασμός ενός Πίνακα με ένα διάνυσμα θα πρέπει οι γραμμές του διανύσματος να είναι όσες και οι στήλες του Πίνακα. Αν δημιουργήσουμε τους πίνακες Α και x : >> A = [1 2 3;4 5 6] A = >> x = [7 8 9] x = και χρησιμοποιήσουμε την εντολή : >> A*x θα πάρουμε το μήνυμα λάθους Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 33

34 ??? Error using ==> mtimes Inner matrix dimensions must agree. γιατί ο Πίνακας A είναι 2x3 και το διάνυσμα x είναι 1x3, οπότε δεν μπορεί να γίνει ο πολλαπλασιασμός. Για να γίνει ο πολλαπλασιασμός θα πρέπει οι στήλες του πίνακα Α να είναι όσες και οι γραμμές του διανύσματος x, οπότε πρέπει να χρησιμοποιήσουμε την εντολή : >> A*x' και το αποτέλεσμα που παίρνουμε είναι ο πίνακας : Ο Πίνακας A είναι 2x3 και το διάνυσμα x είναι 3x1, οπότε μπορεί να γίνει ο πολλαπλασιασμός και ο πίνακας που προκύπτει είναι 2x Πράξεις μεταξύ Πινάκων Πρόσθεση - Αφαίρεση Πινάκων Για να γίνει ο πρόσθεση ή αφαίρεση ενός Πίνακα με ή από ένα άλλον Πίνακα θα πρέπει οι 2 Πίνακες να έχουν τις ίδιες διαστάσεις. Αν δημιουργήσουμε τους πίνακες Α, Β και C : >> A = [1 2 3;4 5 6] A = >> B = [7 8 9; ] B = >> C = [1 2;3 4] C = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 34

35 και χρησιμοποιήσουμε την εντολή : >> A+C??? Error using ==> plus Matrix dimensions must agree. παίρνουμε το παραπάνω μήνυμα λάθους, γιατί ο Πίνακας Α είναι 2x3, ενώ ο Πίνακας Β είναι 2x2. Η πρόσθεση μπορεί να γίνει μεταξύ των Πινάκων Α και Β που είναι 2x3, αν χρησιμοποιήσουμε την εντολή : >> A + B ενώ η αφαίρεση Πινάκων γίνεται με την εντολή : >> A - B Πολλαπλασιασμός Πινάκων Για να γίνει ο πολλαπλασιασμός ενός Πίνακα Α με ένα άλλον Πίνακα Β θα πρέπει οι γραμμές του Πίνακα Β να είναι όσες και οι στήλες του Πίνακα Α. Αν π.χ. χρησιμοποιήσουμε την εντολή : >> A*B??? Error using ==> mtimes Inner matrix dimensions must agree. παίρνουμε το παραπάνω μήνυμα λάθους, γιατί ο Πίνακας Α είναι 2x3 και ο Πίνακας Β είναι 2x3. Ο πολλαπλασιασμός μπορεί να γίνει μεταξύ των Πινάκων Α και Β που είναι 2x3 και 3x2, αν χρησιμοποιήσουμε την εντολή : >> A*B' Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 35

36 Παρατήρηση Αν στον τελεστή «*» χρησιμοποιήσουμε την τελεία, θα προκύψει ένας νέος πίνακας με στοιχεία το αποτέλεσμα του γινομένου των αντίστοιχων στοιχείων των 2 Πινάκων. Οι 2 Πίνακες όμως πρέπει να έχουν τις ίδιες διαστάσεις. Παράδειγμα >> A.*B Διαίρεση Πινάκων Αν χρησιμοποιήσουμε τον τελεστή «/» στους Πίνακες Α, Β >> X = A/B X = θα πάρουμε τον Πίνακα Χ που είναι η λύση του συστήματος εξισώσεων Χ*Β = Α. Με την «.» όμως πριν τον τελεστή «/», θα πάρουμε έναν Πίνακα ίδιων διαστάσεων που τα στοιχεία του είναι το πηλίκο του κάθε στοιχείου του Πίνακα Α με το αντίστοιχο στοιχείο του Πίνακα Β : >> A./B Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 36

37 Επιλογή Τμήματος Πίνακα Έστω ότι δημιουργούμε τον πίνακα A με την εντολή : >> Α = [1, 2, 3, 4; 5, 6, 7, 8; 9, 10, 11, 12] με αποτέλεσμα την εμφάνιση του πίνακα Α(3x4) : Α = Μπορούμε να επιλέξουμε τμήματα του πίνακα όπως φαίνεται στα παραδείγματα που ακολουθούν : Παράδειγμα 1 >> A1 = A(2,1:3) % Επιλέγουμε μόνο τη γραμμή 2 και τις στήλες 1,2,3 Α1 = Παράδειγμα 2 >> A2 = A(2,1:4) % Επιλέγουμε μόνο τη γραμμή 2 και όλες τις στήλες Α2 = Παράδειγμα 3 >> A3 = A(2,:) % Επιλέγουμε μόνο τη γραμμή 2 και όλες τις στήλες Α3 = Παράδειγμα 4 >> A4 = A(:,1:2) % Επιλέγουμε όλες τις γραμμές και τις στήλες 1,2 Α4 = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 37

38 Παράδειγμα 5 >> A5 = A(:,1) % Επιλέγουμε όλες τις γραμμές και μόνο τη στήλη 1 Α5 = Παράδειγμα 6 >> A6 = A(1:2,1:2) % Επιλέγουμε τις γραμμές 1 έως 2 και τις στήλες 1 έως 2 Α6 = Συνένωση Πινάκων Μπορούμε αντίστοιχα να συνενώσουμε 2 πίνακες, αρκεί να συμφωνεί ο αριθμός των γραμμών ή των στηλών τους. Παράδειγμα 1 >> A = [1 2 3;4 5 6] A = >> B = [7 8 9; ; ] B = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 38

39 >> [A;B] Οι Πίνακες Α, Β έχουν τον ίδιο αριθμό στηλών, οπότε ο νέος Πίνακας περιέχει τις 2 γραμμές του Πίνακα Α και τις 3 γραμμές του Πίνακα Β. Παράδειγμα 2 >> [A,B]??? Error using ==> horzcat CAT arguments dimensions are not consistent. Δεν μπορεί να γίνει η συνένωση, γιατί οι Πίνακες Α, Β έχουν διαφορετικό αριθμό γραμμών. Παράδειγμα 3 >> [A,B(1:2,:)] Οι Πίνακες Α, Β(1:2,:) έχουν τον ίδιο αριθμό γραμμών, οπότε ο νέος Πίνακας περιέχει τις 3 στήλες του Πίνακα Α και τις 3 στήλες του Πίνακα Β(1:2,:) Πίνακες Χαρακτήρων ( strings ) - cells Τα στοιχεία ενός διανύσματος ή ενός πίνακα δεν είναι απαραίτητα αριθμοί. Μπορεί να είναι χαρακτήρες αφού οι χαρακτήρες αναπαριστώνται εσωτερικά με τους ASCII κωδικούς τους, δηλαδή με αριθμούς. Έτσι τα strings δεν είναι τίποτα άλλο παρά διανύσματα από χαρακτήρες. Ένα string μπορεί να δηλωθεί δίνοντας τον κάθε χαρακτήρα ή όλους τους χαρακτήρες μαζί, όπως φαίνεται στα παραδείγματα που ακολουθούν : Παράδειγμα 1 >> a = ['M','a','t','l','a','b'] a = Matlab Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 39

40 Παράδειγμα 2 >> b = ['Matlab'] b = Matlab Παρατήρηση 1 Μπορούμε να προσπελάσουμε κάποιον χαρακτήρα με το όνομα του πίνακα και τη θέση του χαρακτήρα στο string, όπως φαίνεται στο παράδειγμα που ακολουθεί : >> b(1) M Παρατήρηση 2 Με τον ίδιο τρόπο μπορούμε να δημιουργήσουμε και έναν πίνακα χαρακτήρων 2 διαστάσεων, αρκεί το κάθε string να περιέχει τον ίδιο αριθμό χαρακτήρων : Παράδειγμα >> A = ['Hello';'There'] A = Hello There Στο παραπάνω παράδειγμα, ο πίνακας A έχει διαστάσεις 2x5. Παρατήρηση 3 Δεν μπορούμε να δημιουργήσουμε έναν πίνακα με strings διαφορετικού μήκους το καθένα. Στην περίπτωση αυτή χρησιμοποιούμε τα «κελιά» - cells όπως στο παράδειγμα που ακολουθεί : >> B = {'Good', 'Morning'} B = 'Good' 'Morning' Η μεταβλητή B είναι ένας πίνακας με διαστάσεις 1x4 όπου τα στοιχεία του είναι τύπου cell. Τα cells δεν είναι strings. Αν θέλουμε να χρησιμοποιήσουμε, π.χ, το string 'Good' που αντιστοιχεί στο B(1) γράφουμε B{1} (προσέξτε τη διαφορά στις αγκύλες). Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 40

41 >> B{1} 'Good' Αν θέλουμε να χρησιμοποιήσουμε, π.χ, τον πρώτο χαρακτήρα του string 'Good' γράφουμε B{1} (1) : >> B{1}(1) G 3.5 Συναρτήσεις σε Πίνακες Μερικές από τις συναρτήσεις που μπορούν να χρησιμοποιηθούν σε Πίνακες 2 διαστάσεων είναι οι size, max, min, sum, prod. Η συνάρτηση size επιστρέφει τον αριθμό γραμμών και στηλών του Πίνακα : >> A = [1 2 3;4 5 6]; >> [lin col] = size(a) lin = 2 col = 3 >> max(a) Η συνάρτηση max επιστρέφει ένα διάνυσμα γραμμή που το κάθε στοιχείο του είναι το μέγιστο στοιχείο κάθε στήλης του αρχικού Πίνακα : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 41

42 >> min(a) Η συνάρτηση min επιστρέφει ένα διάνυσμα γραμμή που το κάθε στοιχείο του είναι το ελάχιστο στοιχείο κάθε στήλης του αρχικού Πίνακα : H συνάρτηση sum επιστρέφει το άθροισμα των στοιχείων της κάθε στήλης του Πίνακα. Παράδειγμα >> sum(α) Η συνάρτηση prod επιστρέφει το γινόμενο των στοιχείων της κάθε στήλης του Πίνακα. Παράδειγμα >> prod(α) Δομές (Structures) (Help: MATLAB->External Interfaces->MATLAB Interface to Generic DLL->Data Conversion->Structures) Το struct είναι ένας τύπος δεδομένων που μπορεί να δημιουργηθεί από τον χρήστη. Η struct() παίρνει ως ορίσματα το όνομα του πεδίου και δίπλα την τιμή του πεδίου. Τα πεδία είναι απλά ονόματα για τις τιμές. Οι τιμές μπορεί να είναι και πίνακες. Η παρακάτω εντολή είναι ένα παράδειγμα δημιουργίας ενός struct το οποίο περιέχει τρεις μεταβλητές την Course, την color και την numbers. >> s = struct('course', {'Machine','Learning'}, 'color', {'red'}, 'numbers', {3 4}) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 42

43 s = 1x2 struct array with fields: Course color numbers Για να προσπελάσουμε μία τιμή από ένα struct γράφουμε το εξής: >> s.course Machine Learning >> s.color red red >> s.numbers Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 43

44 ΚΕΦΑΛΑΙΟ 4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΟ MATLAB 4.1 Scripts (Help: Search for: script) Ένα script είναι ένα εξωτερικό αρχείο που περιέχει μία σειρά από εντολές MATLAB. Με την πληκτρολόγηση του ονόματος του αρχείου στο command line εκτελούνται όλες οι εντολές του script με την σειρά. Τα scripts έχουν επέκταση ονόματος αρχείου.m και συνήθως ονομάζονται και M-Files. Τα script μπορούν να χρησιμοποιήσουν υπάρχοντα δεδομένα από το workspace ή να δημιουργήσουν νέα. Αν και τα script δεν επιστρέφουν τιμές, όποια μεταβλητή δημιούργησαν παραμένει στο workspace. 4.2 Matlab Search Path (Help: MATLAB->Programming->Programming Tips->MATLAB Path) To Matlab search path είναι τα directories στα οποία ψάχνει το MATLAB για υπάρχουσες μεταβλητές, functions, scripts, M-Files, αρχεία και άλλες δομές του MATLAB. Η σειρά με την οποία ψάχνει είναι η παρακάτω. 1. Μεταβλητές 2. Subfunctions 3. Private Functions 4. Class Constructors 5. Overloaded Methods 6. M-File που βρίσκεται στον παρόν κατάλογο 7. Τέλος, M-File που βρίσκεται στο path ή build-in functions του MATLAB Παράδειγμα Έστω ότι καλούμε ένα M-File με το όνομα trainnet.m. >> trainnet Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 44

45 Αφού εκτελέσουμε αυτή την εντολή το MATLAB αρχικά ψάχνει στο search path για μία μεταβλητή με το όνομα trainnet, αν δεν βρει τότε ψάχνει για μία subfunction κτλ. To path είναι ο παρών φάκελος (current directory), στον οποίο ψάχνει το MATLAB. Στην Εικόνα 8.1 φαίνεται η θέση του current directory. Για να εισάγουμε ένα φάκελο στο search path μπορούμε να το κάνουμε με δύο τρόπους, είτε από το toolbar File->Set Path είτε από το command window με την εντολή addpath. >> addpath('c:\matlab_projects') Τέλος για να δούμε όλο το search path του MATLAB πληκτρολογούμε την εντολή matlabpath στο command window. 4.3 Είσοδος Τιμών από το Πληκτρολόγιο (Help:Search For: Input) Για να εισάγουμε μία τιμή σε μία μεταβλητή από το πληκτρολόγιο χρησιμοποιούμε την εντολή input. Σαν όρισμα της input είναι το μήνυμα που θέλουμε να εμφανιστεί πριν την είσοδο. Παράδειγμα >> n = input('δώσε αριθμό : ') Αν στην εμφάνιση του μηνύματος εισάγουμε τον αριθμό 5, θα αποθηκευθεί στη μεταβλητή n. Δώσε αριθμό : 5 n = 5 Αν θέλουμε να αποθηκευθεί η είσοδος σε μεταβλητή τύπου string, θα πρέπει να συμπεριλάβουμε μετά το μήνυμα και το όρισμα s. Παράδειγμα >> chr = input('θα συνεχίσεις Υ/Ν : ','s') Θα συνεχίσεις Υ/Ν : Υ chr = Υ Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 45

46 4.4 Εμφάνιση Τιμών Μεταβλητών (Help:Search For: fprintf, disp) Για να εμφανίσουμε την τιμή μίας μεταβλητής, διανύσματος ή Πίνακα χρησιμοποιούμε τις εντολές disp και fprintf. Με την εντολή disp περνάμε σαν όρισμα τη μεταβλητή. Αν πρόκειται για πραγματικούς αριθμούς, εμφανίζονται στρογγυλοποιημένοι σε 4 δεκαδικά ψηφία. Παράδειγμα 1 >> n = 5 n = 5 >> disp(n) 5 Παράδειγμα 2 >> p = p = >> disp(p) Παράδειγμα 3 >> a = [1 3-2] a = >> disp(a) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 46

47 Παράδειγμα 4 >> A = [1 2 3;4 5 6] A = >> disp(a) Παρατήρηση 1 Μπορούμε να εμφανίσουμε τις τιμές των μεταβλητών με 15 δεκαδικά ψηφία, αν χρησιμοποιήσουμε την εντολή format long. Παράδειγμα 5 >> format long >> disp(pi) Παρατήρηση 2 Οι τιμές των μεταβλητών εμφανίζονται με 4 δεκαδικά ψηφία, γιατί by default ενεργοποιείται η εντολή format short. Παράδειγμα 6 >> format short >> disp(pi) Παρατήρηση 3 Το pi και το eps είναι δεσμευμένεις λέξεις για τις τιμές του π και του αριθμού μηχανής ή της σταθεράς σχετικής ακρίβειας που είναι 2^-52 για πραγματικούς αριθμούς διπλής ακρίβειας. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 47

48 Παράδειγμα 7 >> format long >> disp(eps) e-016 Παρατήρηση 4 Με την εντολή disp μπορούμε να εμφανίζουμε και μηνύματα, τα οποία περικλείονται σε απλούς αποστρόφους. Παράδειγμα 8 >> disp('pinakas') Pinakas Με την εντολή fprintf περνάμε σαν όρισμα τη μεταβλητή και τον αντίστοιχο προσδιοριστή, όπως και στη C, με τον οποίο καθορίζουμε και το πλήθος των δεκαδικών ψηφίων που θα εμφανιστούν. Παράδειγμα 1 >> fprintf('%12.8f\n', pi) Παράδειγμα 2 >> a = [1 3-2] a = >> fprintf('%12.8f', a) >> Παρατήρηση 1 Επειδή υπάρχει μόνο ένας προσδιοριστής %12.8f στην εντολή, χρησιμοποιείται τόσες φορές όσα και τα στοιχεία του διανύσματος. Αν χρησιμοποιήσουμε και αλλαγή γραμμής, τα στοιχεία θα εμφανιστούν σε στήλη : Παράδειγμα 2 >> fprintf('%12.8f\n',a) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 48

49 Παράδειγμα 3 >> A = [1 2 3;4 5 6] A = >> fprintf('%12.8f', A) >> Παρατήρηση 2 Τα στοιχεία του πίνακα 2 διαστάσεων εμφανίζονται διατρέχοντας τις στήλες με τη σειρά. Αν θέλουμε να εμφανιστούν κατά γραμμές, θα πρέπει να χρησιμοποιήσουμε τον τελεστή του αναστρόφου. Παράδειγμα 4 fprintf('%12.8f\n', A ) Παρατήρηση 3 Αν θέλουμε να εμφανιστούν όλα τα στοιχεία και μετά να αλλάξουμε γραμμή, θα πρέπει να χρησιμοποιήσουμε προσδιοριστές, όσα και τα στοιχεία του διανύσματος ή της γραμμής του Πίνακα, όπως φαίνεται στα παραδείγματα που ακολουθούν. Παράδειγμα 5 >> fprintf('%12.8f %12.8f %12.8f\n', a) Παράδειγμα 6 >> fprintf('%12.8f %12.8f %12.8f\n', A ) Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 49

50 Παρατήρηση 3 Μπορούμε να εμφανίσουμε και μηνύματα στην ίδια εντολή fprintf. Παράδειγμα 7 >> fprintf('π = %12.8f\n', pi) π = Παρατήρηση 4 Με την εντολή fprinf μπορούμε να εμφανίσουμε και τις τιμές ακεραίων αριθμών με τον προσδιοριστή %d. Παράδειγμα 8 >> a = 5 a = 5 >> fprintf('%d\n',a) 5 Παρατήρηση 5 Με την εντολή fprinf μπορούμε να εμφανίσουμε και τις τιμές αλφαριθμητικών χαρακτήρων, string με τον προσδιοριστή %s και χαρακτήρων με τον προσδιοριστή %c. Παράδειγμα 10 >> onoma = 'kostas' onoma = kostas >> fprintf('%s\n',onoma) kostas Παράδειγμα 11 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 50

51 >> fprintf('%c\n',onoma(1)) K 4.5 Η Εντολή if-else (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η σύνταξη της εντολής if είναι παρόμοια με αυτή της C, Java με την προσθήκη ενός end στο τέλος της εντολής. Παράδειγμα >> age = input('δώσε Ηλικία : ') >> if (age<=18) fprintf( Νέος\n'); elseif (age<=65) fprintf( Ενήλικας\n'); else fprintf( Ηλικιωμένος\n'); end Παρατηρήστε ότι στην εντολή if-then-else αν έχουμε πάνω από δύο περιπτώσεις μπορούμε να χρησιμοποιήσουμε το elseif. 4.6 Η Εντολή switch (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η σύνταξη της εντολής switch - case είναι παρόμοια με αυτή της C, Java με την προσθήκη ενός end στο τέλος της εντολής, ενώ οι τιμές που θα παίρνει η μεταβλητή για κάθε περίπτωση, θα πρέπει να είναι ακέραιες. Παράδειγμα >> tekna = input('δώσε Αριθμό Παιδιών >= 1 : ') >> switch (tekna) case 1 fprintf( Απαλλαγή 2000 ΕΥΡΩ\n'); case 2 fprintf( Απαλλαγή 4000 ΕΥΡΩ\n'); case 3 fprintf( Απαλλαγή 6000 ΕΥΡΩ\n'); otherwise fprintf( Απαλλαγή ΕΥΡΩ\n'); end Περισσότερες επιλογές σε μια γραμμή case μπαίνουν σε άγγιστρα. Π.χ. case {1,2} Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 51

52 4.7 Η Εντολή while (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η σύνταξη της εντολής while είναι παρόμοια με αυτή της C, Java με την προσθήκη ενός end στο τέλος της εντολής. Παράδειγμα i = 0; a = 5; while (i <= a) i = i + 1; fprintf( i = %12.0f\n', i); end Το παραπάνω τμήμα κώδικα θα έχει το παρακάτω αποτέλεσμα : i = 1 i = 2 i = 3 i = 4 i = Η Εντολή for (Help: MATLAB->Programming->Basic Program Components->Program Control Statements) Η σύνταξη της εντολής for είναι παρόμοια με αυτή της C, Java με την προσθήκη ενός end στο τέλος της εντολής. Παράδειγμα for i = 1:5 fprintf( i = %12.0f\n', i); end Το παραπάνω τμήμα κώδικα θα έχει το ίδιο αποτέλεσμα με το προηγούμενο παράδειγμα. Παρατήρηση 1 Με την εντολή continue μπορούμε να αγνοήσουμε την εκτέλεση του κώδικα για κάποια τιμή στην επανάληψη. Παράδειγμα for i = 1:5 if ( i == 3 ) continue end; fprintf( i = %12.0f\n', i); end; Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 52

53 Το παραπάνω τμήμα κώδικα θα έχει το παρακάτω αποτέλεσμα : i = 1 i = 2 i = 4 i = 5 Παρατήρηση 2 Η διακοπή από ένα βρόχο μπορεί να γίνει με την εντολή break. Παράδειγμα sum = 0; for i = 1: if ( sum > 20 ) break end; sum = sum + i; end; fprintf( i = %12.0f sum = %12.0f\n', i, sum); Το παραπάνω τμήμα κώδικα θα έχει το παρακάτω αποτέλεσμα : i = 5 sum = Λογικοί Τελεστές (Help: MATLAB->Programming->Basic Program Components->Operators) Για την ένωση 2 λογικών εκφράσεων χρησιμοποιούμε τους παρακάτω λογικούς τελεστές : Σύμβολο Λογικό OR & Λογικό AND Short-circuit OR && Short-circuit AND Σύγκριση Πίνακας 4 Οι τελεστές τύπου Short-circuit χρησιμοποιούνται για να ενώσουν δύο λογικές εκφράσεις, π.χ. (a==2) (b(2)>8). Η διαφορά από το κοινό OR (ή AND &) είναι ότι η δεύτερη λογική έκφραση (b(2)>8) δεν υπολογίζεται αν δεν χρειάζεται, αν δηλαδή το αποτέλεσμα είναι γνωστό από την πρώτη κιόλας έκφραση. Π.χ. αν η πρώτη έκφραση είναι true τότε το λογικό OR θα δώσει true άσχετα από την τιμή της δεύτερης έκφρασης ενώ, αντίστοιχα, αν η πρώτη έκφραση είναι false τότε το λογικό AND θα δώσει false άσχετα από την τιμή της δεύτερης έκφρασης. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 53

54 4.10 Συναρτήσεις (Functions) (Help: MATLAB->Getting Started->Programming->Scripts and Functions-> Functions) Οι functions είναι M-Files πού δέχονται δεδομένα ως είσοδο και επιστρέφουν δεδομένα ως έξοδο. Το όνομα του M-File και της function πρέπει να είναι ίδιο. Οι functions πρέπει να βρίσκονται στο ίδιιο workspace με το πρόγραμμα που τις καλεί. Η πρώτη γραμμή του M-File που περιέχει τον κώδικα της συνάρτησης ξεκινά με την λέξη function. Έπειτα δίνουμε το όρισμα ή τα ορίσματα ( παραμέτρους εξόδου ) στις οποίες θα επιστρέψει το αποτέλεσμα = το όνομα της συνάρτησης και σε παρένθεση το όρισμα ή τα ορίσματα με τα οποία θα περάσουν οι τιμές στη συνάρτηση ( παραμέτρους εισόδου ). Παράδειγμα 1 Ας υποθέσουμε πως γράψαμε ένα M-File με όνομα testfun1.m, το οποίο διαβάζει την τιμή μιας μεταβλητής n και δημιουργεί με τη συνάρτηση randn n τυχαίες τιμές. Το πρόγραμμα θα πρέπει να εφαρμόσει τη Βηματική Συνάρτηση σε κάθε στοιχείο του πίνακα u και να επιστρέψει το αποτέλεσμα στο πρόγραμμα μέσω του πίνακα v με την κλήση της function step01.m. Ο κώδικας του προγράμματος testfun1.m θα μπορούσε να περιέχει τα εξής : clear; clc; n = input ( 'Δώσε n : '); u = randn(1,n); disp('u = '); disp(u); v = step01(u, n); disp('v = '); disp(v); Ο κώδικας της συνάρτησης step01.m θα μπορούσε να περιέχει τα εξής : function v = step01(u, n); for i = 1 : n if ( u(i) > 0 ) v(i) = 1; else v(i) = 0; end %if end; %for Με το τρέξιμο του προγράμματος θα δούμε τα παρακάτω : Δώσε n : 5 u = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 54

55 v = Παρατήρηση 1 Αν θέλουμε η Βηματική Συνάρτηση να εφαρμόζεται κάθε φορά στο στοιχείο u(i) του πίνακα u και και να επιστρέψει το αποτέλεσμα στο πρόγραμμα στο στοιχείο v(i) του πίνακα v με την κλήση της function step01.m, θα πρέπει να τροποποιήσουμε τον κώδικα του προγράμματος και της συνάρτησης. Ο κώδικας του προγράμματος testfun2.m θα πρέπει να περιέχει τα εξής : clear; clc; n = input ( 'Δώσε n : '); u = randn(1,n); disp('u = '); disp(u); for i = 1 : n v1 = step01(u, i); v(i) = v1; end %for disp('v = '); disp(v); Ο κώδικας της συνάρτησης step01.m θα μπορούσε να περιέχει τα εξής : function v = step01(u, i); if ( u(i) > 0 ) v = 1; else v = 0; end %if Με το τρέξιμο του προγράμματος θα δούμε τα παρακάτω : Δώσε n : 5 u = v = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 55

56 Παρατήρηση 2 Για να δηλώσουμε μία function με παραπάνω από δύο ορίσματα εξόδου θα πρέπει να τα βάλουμε σε αγγύλες. Θα μπορούσαμε να τροποποιήσουμε τον κώδικα του προγράμματος testfun1.m και της συνάρτησης step01.m ώστε να επιστρέφει εκτός από τον πίνακα v και έναν πίνακα με τις θέσεις των στοιχείων του πίνακα v που έχουν την τιμή 1. Ο κώδικας του προγράμματος testfun3.m θα μπορούσε να περιέχει τα εξής : clear; clc; n = input ( 'Δώσε n : '); u = randn(1,n); disp('u = '); disp(u); [v, one] = step01(u, n); disp('v = '); disp(v); disp('ones = '); disp(one); Ο κώδικας της συνάρτησης step01.m θα μπορούσε να περιέχει τα εξής : function [v, one] = step01(u, n); for i = 1 : n if ( u(i) > 0 ) v(i) = 1; else v(i) = 0; end %if end %for one = find(v==1); Με το τρέξιμο του προγράμματος θα δούμε τα παρακάτω : Δώσε n : 5 u = v = ones = 2 4 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 56

57 ΚΕΦΑΛΑΙΟ 5 ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΣΤΟ MATLAB 5.1 Επεξεργασία Αρχείων Κειμένου (Help:Search For: Writing Text Data, Reading Text Data, fscanf, fprintf) Το MATLAB δίνει την δυνατότητα εγγραφής και ανάγνωσης αρχείων κειμένου. Για να γίνει εγγραφή σε ένα αρχείο κειμένου θα πρέπει να ανοίξουμε το αρχείο, όπως φαίνεται στο παρακάτω παράδειγμα : outf = fopen('test.txt','w'); Με την εντολή fopen δημιουργούμε το αρχείο με όνομα 'test.txt', στο οποίο δίνουμε το λογικό όνομα outfile. Ο προσδιοριστής 'w' χρησιμοποιείται για να δηλώσουμε ότι το αρχείο είναι για γράψιμο ( write ). Για να γράψουμε το περιεχόμενο μιας μεταβλητής στο αρχείο χρησιμοποιούμε την εντολή fprintf προσδιορίζοντας και το λογικό όνομα του αρχείου. Παράδειγμα 1 >> onoma = 'kostas' onoma = kostas >> fprintf(outf,'%s\n', onoma) 7 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 57

58 Με την προηγούμενη εντολή το περιεχόμενο της μεταβλητής onoma γράφεται στην πρώτη γραμμή του αρχείου 'test.txt'. Το 6 σημαίνει ότι έχουν γραφεί 6 χαρακτήρες και μια αλλαγή γραμμής. Αν ανοίξουμε το αρχείο θα δούμε την παρακάτω εικόνα : 1 kostas 2 Με παρόμοιο τρόπο μπορούμε να γράψουμε και τις τιμές κάποιων ακέραιων ή πραγματικών μεταβλητών ή Πινάκων στο αρχείο, για όσο το έχουμε ανοιχτό. Παράδειγμα 2 >> a = 5 a = 5 >> b = 3.14 b = >> fprintf(outf,'%d %f\n', a, b) 11 Με την προηγούμενη εντολή το περιεχόμενο των μεταβλητών a και b γράφονται στη δεύτερη γραμμή του αρχείου 'test.txt'. Το 11 σημαίνει ότι έχουν γραφεί 10 χαρακτήρες και μια αλλαγή γραμμής. Αν ανοίξουμε το αρχείο θα δούμε την παρακάτω εικόνα : 1 kostas Παράδειγμα 3 >> pina = [1 2 3] pina = >> fprintf(outf,'%f %f %f\n', pina); Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 58

59 Με την προηγούμενη εντολή το περιεχόμενο του διανύσματος pina γράφεται στην τρίτη γραμμή του αρχείου 'test.txt'. Αν ανοίξουμε το αρχείο θα δούμε την παρακάτω εικόνα : 1 kostas Όταν τελειώσουμε με την εγγραφή δεδομένων στο αρχείο, θα πρέπει να το κλείσουμε με την εντολή : fclose(outf); Για να γίνει ανάγνωση από ένα αρχείο κειμένου θα πρέπει να ανοίξουμε το αρχείο, όπως φαίνεται στο παρακάτω παράδειγμα : inf = fopen('test.txt','r'); Με την εντολή fopen ανοίγουμε το αρχείο με όνομα 'test.txt', στο οποίο δίνουμε το λογικό όνομα inf. Ο προσδιοριστής 'r' χρησιμοποιείται για να δηλώσουμε ότι το αρχείο είναι για ανάγνωση ( read ). Για να διαβάσουμε το περιεχόμενο του αρχείου σε μια μεταβλητή χρησιμοποιούμε την εντολή fscanf προσδιορίζοντας και το λογικό όνομα του αρχείου. Αν το αρχείο δεν υπάρχει, η εντολή fopen μας επιστρέφει το -1. Αν π.χ. χρησιμοποιήσουμε την εντολή : >> inf = fopen('aa.txt','r') inf = -1 θα μας εμφανίσει το -1, γιατί το αρχείο 'aa.txt' δεν υπάρχει. Για να διαβάσουμε απ το αρχείο 'test.txt' στο οποίο γράψαμε κάποια δεδομένα με τα προηγούμενα παραδείγματα, θα πρέπει να χρησιμοποιήσουμε την εντολή : >> inf = fopen('test.txt','r') inf = 5 Το αρχείο 'test.txt' υπάρχει και είναι έτοιμο για διάβασμα της 1 ης γραμμής. Το διάβασμα των δεδομένων του αρχείου και η αποθήκευσή τους στις αντίστοιχες μεταβλητές γίνεται με την εντολή fscanf, η οποία, εκτός απ τον προσδιοριστή απαιτεί και τον αριθμό των δεδομένων που θα διαβαστούν, όπως φαίνεται στα παραδείγματα που ακολουθούν : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 59

60 Παράδειγμα 1 >> onoma = fscanf(inf,'%s',1) onoma = Kostas Με την προηγούμενη εντολή το περιεχόμενο της πρώτης γραμμής του αρχείου 'test.txt' γράφεται στη μεταβλητή onoma. Με παρόμοιο τρόπο μπορούμε να διαβάσουμε και τις υπόλοιπες γραμμές του αρχείου, για όσο το έχουμε ανοιχτό. Παράδειγμα 2 >> a = fscanf(inf,'%d',1) a = 5 >> b = fscanf(inf,'%f',1) b = Με τις 2 προηγούμενες εντολές το περιεχόμενο της δεύτερης γραμμής του αρχείου 'test.txt' αποθηκεύονται στις μεταβλητές a και b. Παράδειγμα 3 >> pina = fscanf(inf,'%f',3) pina = Με την προηγούμενη εντολή το περιεχόμενο της τρίτης γραμμής του αρχείου 'test.txt' αποθηκεύεται στο διάνυσμα pina. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 60

61 Παρατήρηση Αν αποθηκεύσουμε τα στοιχεία ενός Πίνακα 2 διαστάσεων σε ένα αρχείο, τα στοιχεία του Πίνακα αποθηκεύονται κατά στήλες και όχι γραμμές. Έτσι, με τις παρακάτω εντολές : >> outf = fopen('test1.txt','w'); >> A = [1 2 3;4 5 6] A = >> fprintf(outf,'%f %f %f\n', A); >> fclose(outf) η εικόνα του αρχείου 'test1.txt' θα είναι : Αν θέλουμε να διαβάσουμε τα περιεχόμενα του αρχείου στον Πίνακα Α, θα χρησιμοποιήσουμε τις εντολές : >> inf = fopen('test1.txt','r'); >> A = fscanf(inf,'%f %f',[2,3]) A = >> fclose(inf); όπου [2,3] είναι ο αριθμός των γραμμών και στηλών του Πίνακα στον οποίο θα αποθηκευθούν οι τιμές που θα διαβαστούν. Αν τα στοιχεία του Πίνακα είναι αποθηκευμένα στο αρχείο κατά γραμμές, θα πρέπει να πάρουμε τον ανάστροφο του Πίνακα, μετά το διάβασμα, όπως φαίνεται στο παράδειγμα που ακολουθεί : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 61

62 >> outf = fopen('test2.txt','w'); >> fprintf(outf,'%f %f %f\n', A') και η εικόνα του αρχείου 'test2.txt' θα είναι : >> fclose(inf); Για να διαβάσουμε τα περιεχόμενα του παραπάνω αρχείου στον Πίνακα Α, θα χρησιμοποιήσουμε τις εντολές : >> inf = fopen('test2.txt','r'); >> A = fscanf(inf,'%f %f %f',[3,2]) >> A A = >> fclose(inf); Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 62

63 ΚΕΦΑΛΑΙΟ 6 COMPILER & DEBUGGER ΓΙΑ M-FILES 6.1 Interpreter και Compiler (Help: MATLAB Compiler) Η γραμμή εντολών (command line) λειτουργεί ως interpreter των εντολών που γράφουμε εκεί. Κάθε εντολή που πληκτρολογούμε μεταφράζεται σε γλώσσα μηχανής και εκτελείται μόλις πατήσουμε <ENTER>. Με την ίδια ακριβώς λογική λειτουργούν και τα προγράμματα script, δηλαδή είναι σαν να γράφαμε στο command line του MATLAB κάθε εντολή που είναι γραμμένη στο αρχείο script και πατούσαμε το <ENTER>. Έτσι κάθε εντολή μεταφράζεται και εκτελείται ξανά και ξανά ακόμη και εάν βρίσκεται σε ένα βρόχο. Αυτό δημιουργεί καθυστερήσεις στους βρόχους και είναι λιγότερο αποδοτική μέθοδος σε σχέση με την μετάφραση του κώδικα μια φορά στην αρχή και την δημιουργία binary εκτελέσιμου αρχείου τύπου exe. Η μέθοδος του interpreter είναι βέβαια ιδανική όταν θέλουμε να τεστάρουμε γρήγορα μια ιδέα ή έναν αλγόριθμο χωρίς να χρειάζεται κάθε φορά να μεσολαβεί το χρονοβόρο στάδιο της μετάφρασης και της εκτέλεσης του εκτελέσιμου αρχείου. Το MATLAB προσφέρει έναν compiler με το όνομα mcc οποίος δημιουργεί εκτελέσιμο κώδικα σε μορφή αρχείου exe. Για παράδειγμα έστω ότι έχουμε γράψει το παρακάτω πρόγραμμα στο αρχείο dokimi.m function main() for (ii=1:10) fprintf('i=%f\n', ii); end Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 63

64 Ο κώδικας του κυρίως προγράμματος πρέπει να είναι μια function με το όνομα main(). Εκτελούμε τον compiler μέσα από το MATLAB χρησιμοποιώντας την παράμετρο -m: >> mcc -m dokimi Με την προηγούμενη εντολή, δημιουργείται στον παρόντα κατάλογο μετά από αρκετή αναμονή το αρχείο dokimh_main.c και εμφανίζεται το παρακάτω μήνυμα : Select a compiler: [1] Lcc C version 2.4 in C:\PROGRAM FILES\MATLAB704\BIN\WIN32\\..\..\sys\lcc [2] Microsoft Visual C/C++ version 6.0 in C:\Program Files\Microsoft Visual Studio [0] None Compiler: 1 Αφού επιλέξουμε ένα C-Compiler, δημιουργείται στον παρόντα κατάλογο το αρχείο dokimh_main.exe, το οπίο μπορούμε να τρέξουμε, όπως οποιοδήποτε εκτελέσιμο αρχείο. 6.2 Ο Editor/Debugger (Help: MATLAB -> Desktop Tools and Development Environment -> Editing and Debugging M-Files) Ο editor είναι ένα ολοκληρωμένο περιβάλλον επεξεργασίας scripts. Προσφέρει αυτόματη μορφοποίηση του κώδικα που πληκτρολογούμε, ενώ με διαφορετικά χρώματα καταδεικνύονται οι διαφορετικές εντολές, τα σχόλια με πράσινο χρώμα, οι built-in εντολές με μπλε χρώμα και τα strings με κόκκινο χρώμα. Ο editor έχει ενσωματομένο και το debugger. Ο debugger προσφέρει τη δυνατότητα δημιουργίας σημείων στον κώδικα όπου σταματάει προσωρινά η εκτέλεση του script ώστε να μπορεί να γίνει επισκόπηση των μεταβλητών και του συστήματος γενικότερα. Τα σημεία αυτά λέγονται breakpoints. H δημιουργία ενός breakpoint γίνεται με την επιλογή Debug-> Set/Clear Breakpoint με το δρομέα στην εντολή την οποία έχουμε επιλέξει για έλεγχο ή με αριστερό κλικ με το ποντίκι στην παύλα, δίπλα στον αριθμό της εντολής που έχουμε επιλέξει για έλεγχο. Η εκτέλεση του προγράμματος γίνεται μέχρι τη γραμμή στην οποία έχουμε βάλει breakpoint, η οποία εμφανίζεται με τον αριθμό της και το prompt αλλάζει σε K>>. Στο prompt αυτό μπορούμε να γράψουμε το όνομα μιας μεταβλητής χωρίς να ακολουθεί το σύμβολο ; οπότε εμφανίζεται στην οθόνη το περιεχόμενο της μεταβλητής αυτής. Με την εντολή return επιστρέφουμε στην κανονική εκτέλεση του προγράμματος (βγαίνουμε από τον debugger), εκτός αν βρισκόμαστε σε εντολή επανάληψης, οπότε θα χρειαστεί και ο αντίστοιχος αριθμός εντολών return για να δούμε τις επόμενες τιμές. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 64

65 Το καθάρισμα ενός breakpoint γίνεται πάλι με την επιλογή Debug-> Set/Clear Breakpoint με το δρομέα στην εντολή την οποία έχουμε επιλέξει για έλεγχο ή με αριστερό κλικ με το ποντίκι στην παύλα, δίπλα στον αριθμό της εντολής που είχαμε επιλέξει για έλεγχο. Αφού σταματήσει η εκτέλεση σε κάποιο breakpoint, τότε αυτή μπορεί να συνεχιστεί βηματικά γραμμή-γραμμή χρησιμοποιώντας την επιλογή Debug-> Step ή το πλήκτρο F10. Αν η επόμενη γραμμή καλεί μια συνάρτηση τότε μπορούμε να μπούμε μέσα στη συνάρτηση ( φορτώνεται ο κώδικας της συνάρτησης ) και να την εκτελέσουμε γραμμή-γραμμή με την επιλογή Debug-> Step In ή το πλήκτρο F11. Μπορούμε να βγούμε από τη συνάρτηση πίσω στο κυρίως πρόγραμμα με την επιλογή Debug-> Step Out ή με το συνδιασμό πλήκτρων Shift+F11. Η επιλογή Debug-> Continue συνεχίζει κανονικά (όχι βηματικά) την εκτέλεση μέχρι το επόμενο breakpoint. Επίσης προσφέρονται λειτουργίες Debug-> Stop If Errors/Warnings, όπου το πρόγραμμα σταματάει να εκτελείται ακόμα κι αν δεν υπάρχει breakpoint εφόσον εμφανιστεί κάποια συνθήκη σφάλματος. Τέτοιες συνθήκες είναι: Error, Warning, Not a Number (NaN) ή Infinity (Inf). Το πρόγραμμα σταματάει στη γραμμή που εμφανίστηκε το σφάλμα ώστε να μπορούμε να επιθεωρήσουμε τις τιμές των μεταβλητών και να βοηθηθούμε στην ανακάλυψη της αιτίας του σφάλματος. Παράδειγμα 1 Έστω το script με τις παρακάτω εντολές : 1 - clear; 2 - clc; 3 - n = input ( 'Δώσε n : '); 4 - u = randn(1,n); 5 - disp('u = '); 6 - disp(u); 7 - for i = 1 : n 8 - fprintf('i = %d\n',i); 9 - v = step01(u, n); 10 - end %for 11 - disp('v = '); 12 - disp(v); Με τη δημιουργία ενός breakpoint στη γραμμή 8 και την εκτέλεση του script θα πάρουμε την παραπάνω εικόνα : Δώσε n : 3 u = Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 65

66 8 fprintf('i = %d\n',i); K>> Αν θέλουμε να παρακολουθήσουμε τις τιμές που παίρνει η μεταβλητή I, γράφουμε στο prompt K>> το i., οπότε θα εμφανίζονται οι τιμές που παίρνει μέχρι να τελειώσει η εντολή επανάληψης, όπως φαίνεται παρακάτω, αν συνεχίσουμε την εκτέλεση του προγράμματος με το F10 : K>> i i = 1 i = 1 9 v = step01(u, n); 10 end %for 8 fprintf('i = %d\n',i); i = 2 9 v = step01(u, n); 10 end %for 8 fprintf('i = %d\n',i); i = 3 9 v = step01(u, n); 10 end %for 11 disp('v = '); v = 12 disp(v); End of script testf1. K>> return >> Παράδειγμα 2 Έστω το script με τις παρακάτω εντολές : 1 - clear; 2 - clc; 3 - n = input ( 'Δώσε n : '); 4 - u = randn(1,n); 5 - disp('u = '); 6 - disp(u); 7 - for i = 1 : n 8 - fprintf('i = %d\n',i); 9 - v = step01(u, n); 10 - end %for 11 - disp('v = '); 12 - disp(v); Με τη δημιουργία ενός breakpoint στη γραμμή 9, η οποία καλεί το function step01 και την εκτέλεση του script θα πάρουμε την παραπάνω εικόνα : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 66

67 Δώσε n : 3 u = fprintf('i = %d\n',i); i = 1 Με το πάτημα του πλήκτρου F11, ο έλεγχος πηγαίνει στο function step01 και παίρνουμε την παρακάτω εικόνα : 9 v = step01(u, n); 2 for i = 1 : n Και εμφανίζεται ο κώδικας του function, στην οποία ανήκει και η εντολή 2. Με το συνεχές πάτημα του πλήκτρου F11, εκτελούμε μια μια τις εντολές του function, όσες φορές χρειαστεί και παίρνουμε την παρακάτω εικόνα : 3 if ( u(i) > 0 ) 4 v(i) = 1; 8 end %for 3 if ( u(i) > 0 ) 5 else 6 v(i) = 0; 7 end %if 8 end %for 3 if ( u(i) > 0 ) 5 else 6 v(i) = 0; 7 end %if 8 end %for End of function step end %for 8 fprintf('i = %d\n',i); i = 2 9 v = step01(u, n); 2 for i = 1 : n 3 if ( u(i) > 0 ) 4 v(i) = 1; 8 end %for 3 if ( u(i) > 0 ) 5 else 6 v(i) = 0; 7 end %if 8 end %for 3 if ( u(i) > 0 ) 5 else 6 v(i) = 0; 7 end %if 8 end %for End of function step01. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 67

68 10 end %for 8 fprintf('i = %d\n',i); i = 3 9 v = step01(u, n); 2 for i = 1 : n 3 if ( u(i) > 0 ) 4 v(i) = 1; 8 end %for 3 if ( u(i) > 0 ) 5 else 6 v(i) = 0; 7 end %if 8 end %for 3 if ( u(i) > 0 ) 5 else 6 v(i) = 0; 7 end %if 8 end %for End of function step end %for 11 disp('v = '); v = 12 disp(v); End of script testf1. K>> return >> Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 68

69 ΚΕΦΑΛΑΙΟ 7 ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ 7.1 Γραφικές Παραστάσεις 2 Διαστάσεων Εντολή plot Οι γραφικές παραστάσεις 2 διαστάσεων ( στο επίπεδο ) γίνονται με την εντολή - συνάρτηση plot (Help: Matlab->Functions Categorical List->Graphics->Basic Plots and Graphs>Plot). Η plot γενικά απαιτεί 2 ορίσματα, τα οποία πρέπει να είναι διανύσματα με τον ίδιο αριθμό στοιχείων και σχεδιάζει τη γραφική παράσταση ( Γράφημα 7.1 ) που ορίζουν τα σημεία των 2 διανυσμάτων, όπως φαίνεται στο παράδειγμα που ακολουθεί : Παράδειγμα 1 >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y) Γράφημα 7.1 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 69

70 Παρατηρήσεις Η συνάρτηση plot δέχεται σαν ορίσματα δύο διανύσματα και για το κάθε ζεύγος τιμών απεικονίζει στο επίπεδο το αντίστοιχο σημείο. Τα δύο διανύσματα πρέπει να έχουν τον ίδιο αριθμό στοιχείων. Δημιουργεί το γράφημα Figure 1, 2, 3, ανάλογα με τον αριθμό των γραφημάτων που έχουμε δημιουργήσει. Εμφανίζει τους 2 άξονες και τις τιμές που έχουμε δώσει στα 2 διανύσματα. Εμφανίζει τη συνεχή καμπύλη του γραφήματος με μπλε χρώμα. Αν δεν κλείσουμε το γράφημα, μπορούμε να σχεδιάσουμε και κάποιο άλλο γράφημα πάνω στο υπάρχον Σύμβολα, Χρώματα και Γραμμές Στα γραφήματα μπορούμε να παρέμβουμε στα διάφορα χαρακτηριστικά της γραμμής, όπως : Το είδος της γραμμής Το χρώμα της γραμμής Το πάχος της γραμμής Τον τύπο της κουκίδας Το μέγεθος της κουκίδας Τα χρώματα της κουκίδας ( περίγραμμα και εσωτερικό ) συμπεριλαμβάνοντας στην εντολή plot ένα string, το οποίο περιέχει τους κωδικούς με τους οποίους επιλέγουμε τα παραπάνω χαρακτηριστικά. Είδος Γραμμής Οι κωδικοί που καθορίζουν το είδος της γραμμής φαίνονται στον Πίνακα 7.1 : Κωδικός Τύπος γραμμής - Μονοκόμματη γραμμή -- Διακεκομμένη γραμμή : Γραμμή με τελίτσες -. Γραμμή με παύλα-τελεία Πίνακας 7.1 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 70

71 Παράδειγμα 2 Αν, στο προηγούμενο Παράδειγμα 1, θέλουμε η γραμμή να εμφανίζεται διακεκομμένη, θα χρειαστούν οι παρακάτω εντολές : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y, ) ; με αποτέλεσμα να δημιουργηθεί το γράφημα που φαίνεται στο Γράφημα 7.2 : Γράφημα 7.2 Χρώμα Γραμμής Οι κωδικοί που καθορίζουν το χρώμα της γραμμής φαίνονται στον Πίνακα 7.2 : Κωδικός r g b c m y k w Χρώμα γραμμής κόκκινο πράσινο μπλε κυανό μωβ κίτρινο μαύρο άσπρο Πίνακας 7.2 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 71

72 Παράδειγμα 3 Αν, στο Παράδειγμα 1, θέλουμε η γραμμή να εμφανίζεται διακεκομμένη και κόκκινη, θα χρειαστούν οι παρακάτω εντολές : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y, r ) ; με αποτέλεσμα να δημιουργηθεί το γράφημα που φαίνεται στο Γράφημα 7.3 : Γράφημα 7.3 Πάχος Γραμμής Για να αλλάξουμε το default πάχος της γραμμής του γραφήματος θα πρέπει στην εντολή plot να συμπεριλάβουμε και το string 'LineWidth' και μια τιμή μεταξύ του 0.5 και 30 για το αντίστοιχο πάχος της γραμμής. Παράδειγμα 4 Αν, στο Παράδειγμα 1, θέλουμε η γραμμή να εμφανίζεται διακεκομμένη και κόκκινη και με πάχος γραμμής 3, θα χρειαστούν οι παρακάτω εντολές : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y, r, 'LineWidth', 3) ; με αποτέλεσμα να δημιουργηθεί το γράφημα που φαίνεται στο Γράφημα 7.4 : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 72

73 Γράφημα 7.4 Τύπος Κουκίδας Για την επιλογή της κουκίδας που θα αναπαριστά τα σημεία του γραφήματος, θα πρέπει στο string να συμπεριληφθεί ένας κωδικός, απ αυτούς που παρουσιάζονται στον Πίνακα 7.3 : Κωδικός Τύπος κουκίδας + σύμβολο πρόσθεσης o κύκλος * αστερίσκος. σημείο x σταυρός square or s τετράγωνο diamond or d διαμάντι ^ τρίγωνο με μύτη επάνω v τρίγωνο με μύτη κάτω > τρίγωνο με μύτη προς τα δεξιά < τρίγωνο με μύτη προς τα αριστερά 'pentagram' or p πεντάγραμμο 'hexagram' or h εξάγραμμο Παράδειγμα 5 Πίνακας 7.3 Αν, στο Παράδειγμα 1, θέλουμε η γραμμή να εμφανίζεται διακεκομμένη και κόκκινη και με αστεράκια, θα χρειαστούν οι παρακάτω εντολές : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y, r * ) ; Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 73

74 με αποτέλεσμα να δημιουργηθεί το γράφημα που φαίνεται στο Γράφημα 7.5 : Μέγεθος Κουκίδας Γράφημα 7.5 Για να αλλάξουμε το default μέγεθος της κουκίδας του γραφήματος θα πρέπει στην εντολή plot να συμπεριλάβουμε και το string 'MarkerSize' και μια τιμή μεταξύ του 0.5 και 30 για το αντίστοιχο μέγεθος της κουκίδας. Χρώμα Περιγράμματος Κουκίδας Για να αλλάξουμε το default χρώμα του περιγράμματος της κουκίδας του γραφήματος θα πρέπει στην εντολή plot να συμπεριλάβουμε και το string 'MarkerEdgeColor' και ένα ακόμη string με μια τιμή για το χρώμα, σύμφωνα με τον Πίνακα 7.2. Χρώμα Γεμίσματος Κουκίδας Για να αλλάξουμε το default χρώμα του γεμίσματος της κουκίδας του γραφήματος θα πρέπει στην εντολή plot να συμπεριλάβουμε και το string 'MarkerFaceColor' και ένα ακόμη string με μια τιμή για το χρώμα, σύμφωνα με τον Πίνακα 7.2. Παράδειγμα 6 Αν, στο Παράδειγμα 1, θέλουμε η γραμμή να εμφανίζεται διακεκομμένη και κόκκινη και με κύκλους μεγέθους 14, με χρώμα περιγράμματος μπλε και χρώμα γεμίσματος κίτρινο, θα χρειαστούν οι παρακάτω εντολές με αποτέλεσμα το γράφημα 7.6 : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y,'r--o', 'MarkerSize',14, 'MarkerFaceColor','y', 'MarkerEdgeColor','b' ); Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 74

75 Γράφημα 7.6 Τίτλος Γραφήματος Μπορούμε να βάλουμε στο γράφημα Τίτλο (Γράφημα 7.7 ) με την εντολή : >> title( 'Γράφημα Ημιτόνου','FontSize',14 ); Γράφημα 7.7 Ονόματα Αξόνων Γραφήματος Αντίστοιχα, μπορούμε να βάλουμε στο γράφημα και ονομασίες για τους Άξονες x και y, επιλέγοντας γραμματοσειρά και μέγεθος γραμμάτων με τις εντολές : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 75

76 >> xlabel ( 'Άξονας x','fontname','courier New','FontSize',14); >> ylabel ( 'Άξονας y','fontname','courier New','FontSize',14); οπότε το προηγούμενο γράφημα γίνεται : Γράφημα 7.8 Παρατήρηση Αν θέλουμε ο Τίτλος του Άξονα y να εμφανίζεται οριζόντια και όχι κάθετα, χρησιμοποιούμε το Rotation στην εντολή ylabel, όπως φαίνεται στο Γράφημα 7.9 : >> ylabel ( 'Άξονας y','fontname','courier New','FontSize',14, Rotation,0); Γράφημα 7.9 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 76

77 7.1.3 Η Εντολή hold on Η εντολή hold μας δίνει την δυνατότητα να σχεδιάσουμε πολλαπλά γραφήματα σε ένα figure. Η function hold καθορίζει το αν στην επόμενη φορά που θα εισάγουμε μία νέα γραφική παράσταση θα αντικαταστήσει την προηγούμενη ή θα σχεδιαστεί από πάνω. Όταν καλούμε την hold με το όρισμα on να την ακολουθεί τότε η γραφική παράσταση που έχουμε σχεδιάσει διατηρείται. Η δράση της hold on διαρκεί μέχρι να καλέσουμε την hold off. Τότε ότι έχουμε σχεδιάζει θα σβηστεί από την επόμενη γραφική παράσταση που θα σχεδιάσουμε. Αν π.χ. θέλουμε να σχεδιάσουμε και τη γραφική παράσταση του συνημιτόνου στο προηγούμενο γράφημα, θα πρέπει να χρησιμοποιήσουμε τις εντολές : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y,'r--o', 'MarkerSize',12, 'MarkerFaceColor','y', 'MarkerEdgeColor','b' ); >> title( 'Γράφημα Ημιτόνου','FontSize',14 ); >> xlabel ( 'Άξονας x','fontname','courier New','FontSize',14); >> ylabel ( 'Άξονας y','fontname','courier New','FontSize',14, Rotation,0); >> hold on; >> y = cos(x); >> plot(x,y,'g:*', 'MarkerSize',12, 'MarkerFaceColor','k', 'MarkerEdgeColor','b' ); και οι 2 γραφικές παραστάσεις φαίνονται στο επόμενο Γράφημα 7.10 : Γράφημα 7.10 Παρατήρηση Αν θέλουμε να απενεργοποιήσουμε τη δυνατότητα να σχεδιάζουμε στο ίδιο γράφημα, θα πρέπει να χρησιμοποιήσουμε την εντολή hold off. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 77

78 7.1.4 Η Εντολή subplot Με την εντολή subplot μπορούμε στο ίδιο γράφημα να σχεδιάσουμε περισσότερα από ένα υπογραφήματα, δίνοντας κάθε φορά τη διάταξη που θα έχουν τα υπογραφήματα, δηλαδή πόσες γραμμές και πόσες στήλες, τα οποία μετά αριθμούνται διατρέχοντας το δισδιάστατο πίνακα κατά γραμμές, δηλαδή το πρώτο υπογράφημα στην 1 η γραμμή 1 η στήλη, το δεύτερο στην 1 η γραμμή 2 η στήλη κ.λ.π.. Παράδειγμα 7 Να γίνει η γραφική παράσταση των 3 συνεχών συναρτήσεων ενεργοποίησης, δηλαδή της Σιγμοειδούς, της Υπερβολικής Εφαπτομένης και της Γραμμικής Συνάρτησης με τη χρήση της εντολής subplot : >> subplot(2,2,1); >> x=-3:0.1:3; >> y=1./(1+exp(-x)); >> plot(x,y,'r:'); >> subplot(2,2,2); >> y=tanh(x); >> plot(x,y,'b--'); >> subplot(2,2,3); >> y = x; >> plot(x,y,'g.'); Με τις παραπάνω εντολές γίνονται 2x2 υπογραφήματα, τα οποία αριθμούνται σαν 1 το (1,1), 2 το (1,2) και 3 το (2,1), όπως φαίνεται στο Γράφημα 7.11 : Γράφημα 7.11 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 78

79 Παράδειγμα 8 Αν στο προηγούμενο παράδειγμα θέλαμε στη θέση του 1 ου και του 3 ου υπογραφήματος να εμφανίζεται το πρώτο απ τα 3 γραφήματα και τα υπόλοιπα δύο στις θέσεις 2 και 4, τροποποιούμε τις προηγούμενες εντολές αριθμώντας το 1 ο υπογράφημα σαν 1 και 3 μαζί, όπως φαίνεται στις εντολές που ακολουθούν : >> subplot(2,2,[1 3]); >> x=-3:0.1:3; >> y=1./(1+exp(-x)); >> plot(x,y,'r:'); >> subplot(2,2,2); >> y=tanh(x); >> plot(x,y,'b--'); >> subplot(2,2,4); >> y = x; >> plot(x,y,'g.'); Με τις παραπάνω εντολές το [1 3] στην πρώτη εντολή δηλώνει ότι το συγκεκριμένο subplot θα είναι στο χώρο του 1 ου και 3 ου plot, οπότε γίνονται 3 υπογραφήματα, τα οποία καλύπτουν το χώρο των τεσσάρων (2x2), όπως φαίνεται στο Γράφημα 7.11 : Γράφημα 7.12 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 79

80 7.1.5 Αφαίρεση Αξόνων από Γράφημα ( Εντολή axis off ) Αν θέλουμε να μην εμφανίζονται οι άξονες σε κάποιο γράφημα, χρησιμοποιούμε την εντολή axis off. Παράδειγμα 9 Να αφαιρεθούν οι άξονες απ το γράφημα του Παραδείγματος 1 : >> x = [-10:0.1:10]; >> y = sin(x); >> plot(x,y) >> axis off Γράφημα Εισαγωγή Εικόνας σε Γράφημα ( Εντολές imread, image ) Για να εισάγουμε μια εικόνα jpg, tiff κ.λ.π. σε κάποιο γράφημα, θα πρέπει να διαβάσουμε την εικόνα σε κάποια μεταβλητή με την εντολή imread και να την αποθηκεύσουμε στο Figure με την εντολή image. Παράδειγμα 10 Να γραφούν οι εντολές για την αποθήκευση στο figure 1 της εικόνας att00000.jpg που βρίσκεται στον παρόντα φάκελο. Με τις παρακάτω εντολές >> figure(1); >> x = imread('att00000.jpg'); >> image(x); Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 80

81 το figure 1 θα έχει την παρακάτω εικόνα : Γράφημα 7.14 Παρατήρηση Αν χρησιμοποιήσουμε και την εντολή >> axis off θα αφαιρεθούν οι άξονες, οπότε θα έχουμε την παρακάτω εικόνα : Γράφημα 7.15 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 81

82 7.1.7 Εισαγωγή Κειμένου σε Γράφημα ( Εντολή gtext ) Μπορούμε να εισάγουμε κείμενο σε ένα γράφημα με τις εντολές gtext και text. Παράδειγμα 11 Να γραφούν οι εντολές για τη δημιουργία ενός γραφήματος των συναρτήσεων x^2 και x^3 με το αντίστοιχο κείμενο. Με τις παρακάτω εντολές : >> x = -1:0.1:1; >> y1 = x.^2; >> y2 = x.^3; >> plot(x,y1,'b-',x,y2,'r-.'); θα δημιουργηθεί το γράφημα : Γράφημα 7.16 Με τις εντολές >> gtext( x^2 ); >> gtext( x^3 ); ανοίγει το γράφημα και μπορούμε με το ποντίκι να μετακινήσουμε το σταυρό που εμφανίζεται στη θέση που θέλουμε να εμφανιστεί το κείμενο. Μετά τις δύο εισαγωγές κειμένου, η προηγούμενη εικόνα θα πάρει την παρακάτω μορφή : Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 82

83 Γράφημα 7.17 Παρατήρηση Παρόμοιο αποτέλεσμα μπορούμε να έχουμε με τη χρήση της εντολής text, αρκεί να δώσουμε τις συντεταγμένες της θέσης στην οποία θα μπει το κείμενο στο γράφημα. Αν στο πρηγούμενο παράδειγμα, αντί των εντολών gtext, δώσουμε τις εντολές : >> text(-0.8,0.6,'y=x^2') >> text(-0.8,-0.6,'y=x^3') θα πάρουμε το παρακάτω γράφημα : Γράφημα 7.18 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 83

84 7.1.8 Αποθήκευση Γραφήματος σε μορφή pdf, tiff, Για να αποθηκεύσουμε ένα γράφημα σε οποιαδήποτε μορφή εκτός της default fig μπορούμε να χρησιμοποιήσουμε την επιλογή Save As στο αντίστοιχο figure ή την εντολή print στο Command Prompt. Mε την εντολή >> print -dtiff -f1 figsin.tiff Ο προσδιοριστής -dtiff αφορά τη μορφή του αρχείου ( tiff στο παράδειγμα ), ο -f1 το γράφημα 1, 2 κ.λ.π. στο οποίο αναφερόμαστε ( figure 1 στο παράδειγμα ) και το figsin.tiff είναι το όνομα του αρχείου στο οποίο θέλουμε να αποθηκευθεί το γράφημα. 7.2 Η Εντολή bar Με την εντολή bar, αντί της plot, σχεδιάζουμε ένα ραβδογράφημα. Παράδειγμα 12 Για να γίνει ένα ραβδογράφημα με τις πωλήσεις κάθε μήνα, όπου οι τιμές των πωλήσεων είναι τυχαίοι ακέραιοι αριθμοί μεταξύ του 1 και του 100 θα χρειαστούν οι παρακάτω εντολές, με αποτέλεσμα το γράφημα 7.19 : >> x = 1:1:12; >> y = randint(1,12,100); >> bar(x,y); Παρατήρηση Γράφημα 7.19 Η εντολή randint μετατρέπει τους τυχαίους αριθμούς στο ( 0, 1 ) σε ακέραιους αφού τους πολλαπλασιάσει με το 100. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 84

85 7.3 Η Εντολή stem Παρόμοιο με την εντολή bar αποτέλεσμα, με πιο λεπτές μπάρες και με κύκλους όμως στην κορυφή κάθε μπάρας έχει και η εντολή stem. Παράδειγμα 13 Αν στο Παράδειγμα 12 χρησιμοποιήσουμε την εντολή stem αντί της bar, θα χρειαστούν οι παρακάτω εντολές, με αποτέλεσμα το γράφημα 7.20 : >> x = 1:1:12; >> y = randint(1,12,100); >> stem(x,y); Γράφημα Η Εντολή pause Η εντολή pause ( χωρίς όρισμα ) σταματά την εκτέλεση του κώδικα μέχρι να πατήσει ο χρήστης το πλήκτρο Enter ή για όσο χρονικό διάστημα έδωσε ο χρήστης σαν όρισμα στην παρένθεση. Σαν όρισμα δίνεται ένας αριθμός σε δευτερόλεπτα. Αν για παράδειγμα δώσουμε την εντολή >> pause(1); το πρόγραμμα θα κάνει παύσεις ενός δευτερολέπτου μέχρι να εμφανίσει το επόμενο γράφημα. Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 85

86 7.4 Γραφικές Παραστάσεις 3 Διαστάσεων Η Εντολή meshgrid Η συνάρτηση-εντολή meshgrid δημιουργεί Πίνακες που ορίζουν το πλέγμα των γραφημάτων. Η meshgrid μπορεί να χρησιμοποιηθεί μόνο για δισδιάστατο ή τρισδιάστατο καρτεσιανό χώρο. Παίρνει για ορίσματα δύο διανύσματα x, y και επιστρέφει δύο Πίνακες X, Y. Οι γραμμές του X είναι αντίγραφα του x και οι στήλες του Υ είναι αντίγραφα του y. Η επόμενη εντολή δίνει ένα παράδειγμα χρήσης της meshgrid. >> [X,Y] = meshgrid(1:1:3, 4:1:7) X = Y = Η Εντολή mesh Η συνάρτηση mesh σχεδιάζει την γραφική παράσταση μιας επιφάνειας. Παίρνει τρία ορίσματα, δύο Πίνακες που περιέχουν τις συντεταγμένες του οριζόντιου επιπέδου και ένα τρίτο Πίνακα που περιέχει τις συντεταγμένες της επιφάνειας στην τρίτη διάσταση. Παράδειγμα 14 Για να γίνει το γράφημα της καμπάνας του Gauss θα χρειαστούν οι παρακάτω εντολές, ενώ το αποτέλεσμα φαίνεται στο Γράφημα >> [X,Y] = meshgrid(-5:0.1:5, -5:0.1:5); >> Z = exp(-(x.^2 + Y.^2)/2); >> mesh(x,y,z); Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 86

87 Γράφημα Η Εντολή contour Η συνάρτηση contour σχεδιάζει διαγράμματα ισοϋψών καμπυλών. Αν στο προηγούμενο παράδειγμα χρησιμοποιήσουμε την εντολή contour αντί της mesh, θα πάρουμε το παρακάτω γράφημα 7.22 : >> [X,Y] = meshgrid(-5:0.1:5, -5:0.1:5); >> Z = exp(-(x.^2 + Y.^2)/2); >> contour(x,y,z); Γράφημα 7.22 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 87

88 7.4.4 Η Εντολή meshc Η meshc είναι απλά ο συνδυασμός της mesh με την contour. Το προηγούμενο παράδειγμα με τη χρήση της meshc θα έχει σαν αποτέλεσμα να δημιουργηθεί το γράφημα >> [X,Y] = meshgrid(-5:0.1:5, -5:0.1:5); >> Z = exp(-(x.^2 + Y.^2)/2); >> meshc(x,y,z); Γράφημα 7.23 Αν χρησιμοποιήσουμε την επιλογή Rotate 3D στο Γράφημα, η βάση του γραφήματος θα είναι αυτή που φαίνεται στο 7.24, παρόμοια με αυτή του Γράφημα 7.24 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 88

89 7.4.5 Η Εντολή surf Η surf σχεδιάζει την γραφική παράσταση μιας επιφάνειας με την διαφορά ότι η επιφάνεια θα είναι σκιασμένη. Το προηγούμενο παράδειγμα με τη χρήση της surf θα έχει σαν αποτέλεσμα να δημιουργηθεί το γράφημα >> [X,Y] = meshgrid(-5:0.1:5, -5:0.1:5); >> Z = exp(-(x.^2 + Y.^2)/2); >> surf(x,y,z); Γράφημα 7.25 Σύντομο Εγχειρίδιο Matlab Διαμαντάρας Κ. - Γουλιάνας Κ Σελίδα. 89

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

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής email: dzavanti@cs.uoi.gr Περιεχόμενα Τι είναι η Matlab; Ιστορικά Χρήσεις και στοιχεία της Matlab

Διαβάστε περισσότερα

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

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011 Εισαγωγή στο Matlab Μέρος Α Κυριακίδης Ιωάννης 2011 Εισαγωγή στο Matlab Το όνομα του προέρχεται από τα αρχικά γράμματα των λέξεων MATtrix LABoratory (εργαστήριο πινάκων). To MATLAB (MathWorks Inc.) παρέχει

Διαβάστε περισσότερα

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

Εισαγωγή στη Matlab Βασικές Συναρτήσεις Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας Εισαγωγή στη Matlab Βασικές Συναρτήσεις 2016-2017 Εισαγωγή στη Matlab Matlab

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

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

Εισαγωγικές σημειώσεις στο Matlab Εισαγωγικές σημειώσεις στο Matlab 2011 Athens by Cheilakos Nick Τι είναι το Matlab; Το Matlab είναι ένα διαδραστικό πακέτο για αριθμητικούς υπολογισμούς που δημιουργήθηκε από τον Cleve Moler την δεκαετία

Διαβάστε περισσότερα

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

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ email: leo@mail.ntua.gr url: http://users.ntua.gr/leo Μελάς Ιωάννης Υποψήφιος

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ ΕΙΣΑΓΩΓΗ ΠΙΝΑΚΩΝ ΣΤΟ MATHLAB Αν θέλουμε να εισάγουμε έναν πίνακα στο mathlab και να προβληθεί στην οθόνη βάζουμε τις τιμές του σε άγκιστρα χωρίζοντάς τις με κόμματα ή κενό

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 5ο Aντώνης Σπυρόπουλος Πράξεις μεταξύ των

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB Κολοβού Αθανασία Ε.Τ.Ε.Π. http://users.uoa.gr/~akolovou/ MATRIX LABORATORY Μαθηματικό λογισμικό πακέτο Everything is a matrix Εύκολο να ορίσουμε τους πίνακες >> A = [6 3; 5 0] A = 6

Διαβάστε περισσότερα

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

Διαβάστε περισσότερα

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

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.] Εισαγωγή στο MATLAB Το MATLAB αποτελεί ένα εμπορικό εργαλείο το οποίο προσφέρει ένα διαδραστικό προγραμματιστικό περιβάλλον στον χρήστη και χρησιμοποιείται σε ένα μεγάλο εύρος εφαρμογών. Ενσωματώνει μια

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

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

Εισαγωγή στους. Υπολογιστές Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή γή στον επιστημονικό προγραμματισμό 2 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo Μελάς Ιωάννης Υποψήφιος

Διαβάστε περισσότερα

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Εισαγωγή στην Tcl. Τί είναι η Tcl; 1 Εισαγωγή στην Tcl Τί είναι η Tcl; Το αρκτικόλεξο Tcl προέρχεται από τις λέξεις «Tool Control Language». Η Tcl είναι μια γλώσσα προγραμματισμού για scripts γενικής χρήσεως, τα οποία επίσης μπορούν να

Διαβάστε περισσότερα

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

Αλληλεπίδραση με το Matlab Αλληλεπίδραση με το Matlab Περιγραφή της διαδικασίας πως εργαζόμαστε με το Matlab, και της προετοιμασίας και παρουσίασης των αποτελεσμάτων μιας εργασίας με το Matlab. Ειδικότερα θα συζητήσουμε μερικά στοιχεία

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

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

Έναρξη Τερματισμός του MatLab Σύντομος Οδηγός MATLAB Β. Χ. Μούσας 1/6 Έναρξη Τερματισμός του MatLab Η έναρξη της λειτουργίας του MatLab εξαρτάται από το λειτουργικό σύστημα. Στα συστήματα UNIX πληκτρολογούμε στη προτροπή του συστήματος

Διαβάστε περισσότερα

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Ενότητα 1: Εισαγωγή στο Matlab Διδάσκουσα: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ Ι ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ Τύποι δεδομένων Οι παρακάτω τύποι δεδομένων υποστηρίζονται από τη γλώσσα προγραμματισμού Fortran: 1) Ακέραιοι αριθμοί (INTEGER). 2) Πραγματικοί αριθμοί απλής ακρίβειας

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

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

Για τη δημιουργία ενός διανύσματος με στοιχεία από το 0 μέχρι το 20 με βήμα το 2 (χρησιμοποιείται συνήθως για διανύσματα χρόνου) δίνουμε Εργαστήριο Συστημάτων Αυτομάτου Ελέγχου Άσκηση 1 η Εισαγωγή στο Matlab 1 Άσκηση 1 η : Εισαγωγή στο Matlab Αντικείμενο Εξοικείωση με τις βασικές λειτουργίες του Matlab (πρόγραμμα αριθμητικής ανάλυσης και

Διαβάστε περισσότερα

Συναρτήσεις στη Visual Basic 6.0

Συναρτήσεις στη Visual Basic 6.0 Προγραμματισμός & Εφαρμογές Υπολογιστών Μάθημα 4ο Συναρτήσεις στη Visual Basic 6.0 Κ. Κωστοπούλου Σειρά εκτέλεσης των πράξεων Όταν ορίζετε μια ακολουθία αριθμητικών πράξεων είναι δυνατόν να προκύψει αμφισημία.

Διαβάστε περισσότερα

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

Νέο υλικό. www.cs.uoi.gr/~develeg. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες). Matlab Μάθημα Νέο υλικό www.cs.uoi.gr/~develeg Matlab.pdf - Παρουσίαση μαθήματος. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (3 σελίδες). Επαναληπτικές δομές Όταν εκτελείται μια πράξη σε ένα διάνυσμα,

Διαβάστε περισσότερα

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

Διαβάστε περισσότερα

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α Σπυρόπουλος Α Μπουντουβής Αθήνα, 2015 v13_061015 Στον οδηγό αυτό θα χρησιμοποιηθούν

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Τύποι δεδομένων, μεταβλητές, πράξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

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

Το παράθυρο έναρξης του Μatlab Εισαγωγή στο Matlab Το παράθυρο έναρξης του Μatlab Αν οποιοδήποτε από αυτά τα παράθυρα είναι κρυμμένο μπορείτε να το εμφανίσετε από το menu με όνομα Desktop. Desktop > Desktop Layout > Default Ένα παράθυρο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

Κεφάλαιο 1. Τι θα μάθουμε σήμερα: -AND, OR, NOT. -Ενσωματωμένες συναρτήσεις. -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD. -Προτεραιότητα πράξεων

Κεφάλαιο 1. Τι θα μάθουμε σήμερα: -AND, OR, NOT. -Ενσωματωμένες συναρτήσεις. -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD. -Προτεραιότητα πράξεων Κεφάλαιο 1 Αρχή ήμισυ παντός. Πλάτων, 427-347 π.χ., Φιλόσοφος Τι θα μάθουμε σήμερα: -AND, OR, NOT -Ενσωματωμένες συναρτήσεις -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD -Προτεραιότητα πράξεων 1 Λογικές

Διαβάστε περισσότερα

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #4: Πίνακες στο MATLAB Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Πίνακες στο MATLAB MATLAB Fundamentals Α. Καλαμπούνιας Επισκόπιση: Scalars και

Διαβάστε περισσότερα

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

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα 1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Ενότητα: ΜΑΘΑΙΝΟΝΤΑΣ ΤΟ MATLAB, ΜΕΡΟΣ Α Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.)

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.) ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση είναι ένας έτοιμος τύπος ο οποίος δέχεται σαν είσοδο τιμές ή συνθήκες και επιστρέφει ένα αποτέλεσμα, το οποίο μπορεί να είναι μια τιμή αριθμητική, αλφαριθμητική, λογική, ημερομηνίας

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΝΕΥΡΩΝΙΚΩΝ ΚΑΙ ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙ ΙΟ MATLAB

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΝΕΥΡΩΝΙΚΩΝ ΚΑΙ ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙ ΙΟ MATLAB ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΚΑΙ ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙ ΙΟ MATLAB ΚΩΝΣΤΑΝΤΙΝΟΣ ΙΑΜΑΝΤΑΡΑΣ Καθηγητής ΚΩΝΣΤΑΝΤΙΝΟΣ ΓΟΥΛΙΑΝΑΣ Επίκουρος Καθηγητής ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΛΕΞΑΝ ΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ Περιεχόµενα

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

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

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα

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

Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος Τμήμα Μαθηματικών και Στατιστικής Πανεπιστήμιο Κύπρου Μάϊος 7 . ΕΙΣΑΓΩΓΗ Το MATLAB είναι ένα σύγχρονο ολοκληρωμένο μαθηματικό λογισμικό πακέτο που χρησιμοποιείται

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 3 Εκφράσεις, τελεστές, σχόλια Σύνοψη Στο κεφάλαιο αυτό εισάγουμε τον τρόπο τέλεσης πράξεων μεταξύ μεταβλητών και σταθερών, εκφράσεις μεταξύ αυτών καθώς και το σχολιασμό της λογικής ενός προγράμματος.

Διαβάστε περισσότερα

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στον Επιστημονικό Προγραμματισμό Μάθημα 1 ο Διδάσκοντες: Λεωνίδας Αλεξόπουλος Επ. Καθηγητής ΕΜΠ e-mail: leo@mail.ntua.gr url: http://users.ntua/leo Θεόδωρος

Διαβάστε περισσότερα

ημιουργία και διαχείριση πινάκων

ημιουργία και διαχείριση πινάκων ημιουργία και διαχείριση πινάκων Για να δημιουργήσουμε έναν πίνακα στο MATLAB μπορούμε να γράψουμε A = [ 2 3 ; 7 9 0 ; - 0 5; -2-3 9 -] βλέπουμε ότι αμέσως μας επιστρέφει τον πίνακα που ορίσαμε A = 2 3

Διαβάστε περισσότερα

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

Διαβάστε περισσότερα

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

Διαβάστε περισσότερα

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 4 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

Διαβάστε περισσότερα

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο Η Mathematica είναι ένα ολοκληρωμένο μαθηματικό πακέτο με πάρα πολλές δυνατότητες σε σχεδόν όλους τους τομείς των μαθηματικών (Άλγεβρα, Θεωρία συνόλων, Ανάλυση,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 5 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 5 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

Διαβάστε περισσότερα

Παράδειγμα για διαχείριση strings

Παράδειγμα για διαχείριση strings Παράδειγμα για διαχείριση strings Ας υποθέσουμε ότι έχουμε ένα string που αποτελείται από μια γωνία ακολουθούμενη από ένα γράμμα ή d για μοίρες ή r για ακτίνια. Για παράδειγμα μπορεί να είναι ένα string

Διαβάστε περισσότερα

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

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 2. Έστω x = [2 5 1 6] α. Προσθέστε το 16 σε κάθε στοιχείο β. Προσθέστε το 3 σε κάθε στοιχείο που βρίσκεται σε μονή θέση.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. MATLAB Tι είναι το λογισµικό MATLAB? Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. Σύστηµα αλληλεπίδρασης µε τοχρήστηγια πραγµατοποίηση επιστηµονικών υπολογισµών (πράξεις µε πίνακες επίλυση

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

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

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας H Matlab ως γλώσσα προγραμματισμού Προγραμματιστικές δομές Έλεγχος ροής if if

Διαβάστε περισσότερα

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

Διαβάστε περισσότερα

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

Διαβάστε περισσότερα

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

ΠΑΡΑΡΤΗΜΑ Α Εισαγωγή στο MATLAB ΠΑΡΑΡΤΗΜΑ Α A-2 Ν. Μήτρου - ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ: Συνοπτική Θεωρία και Εργαστήριο Περιεχόμενα Παραρτήματος Α A.1 Γενικά... Α-3 A.2 Αριθμοί και βασικές δομές δεδομένων στο MATLAB... Α-3 A.3 Αριθμητικές

Διαβάστε περισσότερα

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Τύποι δεδομένων Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ Δρ. Στέλιος Τιμοθέου ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Εισαγωγή στον Προγραμματισμό Λογικό

Διαβάστε περισσότερα

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ρ. Γεώργιος Φ. Φραγκούλης Καθηγητής Ver. 0.2 9/2012 ιανύσµατα & ισδιάστατοι πίνακες Ένα διάνυσµα u = (u1, u2,, u ) εισάγεται στη MATLAB ως εξής : u=[ u1, u2,, un ] ή u=[ u1

Διαβάστε περισσότερα

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

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

Εργαλεία Προγραμματισμού Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox ΚΕΣ 03 Αναγνώριση προτύπων και ανάλυση εικόνας Εργαλεία Προγραμματισμού Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

1 Πίνακες 1.1 Συνοπτική θεωρία

1 Πίνακες 1.1 Συνοπτική θεωρία 1 Πίνακες Σε αυτήν την ενότητα θα εξοικειωθείτε με την έννοια των πινάκων στον προγραμματισμό (χωρίς τον ιδιαίτερο τρόπο χειρισμού των πινάκων στο MATLAB), και συγκεκριμένα θα δείτε: πώς ορίζεται ένας

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός ΗΥ: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

Διαβάστε περισσότερα

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

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

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB (το παρόν αποτελεί τροποποιηµένη έκδοση του οµόνυµου εγχειριδίου του κ. Ν. Μαργαρη) 1 ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ 1.1 ΠΡΑΞΕΙΣ ΜΕ ΠΡΑΓΜΑΤΙΚΟΥΣ ΑΡΙΘΜΟΥΣ 1.1.1 ΠΡΟΣΘΕΣΗ» 3+5 8 % Το σύµβολο

Διαβάστε περισσότερα

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος... Περιεχόμενα Πρόλογος...11 Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών... 13 1.1 Εισαγωγή στους υπολογιστές... 15 1.2 Μονάδες μέτρησης... 27 1.3 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή...

Διαβάστε περισσότερα

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα Εισαγωγή στη Fortran Μάθημα 1 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Ιστορία της Fortran Βασικές γνώσεις Fortran Επιτρεπτοί χαρακτήρες Μορφή προγράμματος Τύποι μεταβλητών Πράξεις και

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08 Constructors (Κατασκευαστές) Ειδικός τύπος μεθόδων που δημιουργούν αντικείμενα μιας κλάσης και: Εκτελούνται κατά την αρχικοποίηση των αντικειμένων

Διαβάστε περισσότερα

Δημιουργία και εκτέλεση προγραμμάτων. Εντολές εισόδου από το πληκτρολόγιο και εξόδου στην οθόνη.

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

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

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

Εισαγωγή στο GNU Octave/MATLAB Εισαγωγή στο GNU Octave/MATLAB Δρ. Βασίλειος Δαλάκας Καλώς ήρθατε στο εργαστήριο Σημάτων και Συστημάτων με το λογισμικό Octave (Οκτάβα). Οι σημειώσεις αυτές έχουν βασιστεί στις σημειώσεις του εργαστηρίου

Διαβάστε περισσότερα

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 8 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 2 2.1 ΜΕΤΑΒΛΗΤΕΣ (ΜΕΡΟΣ Β) Στην προηγούµενη διάλεξη µάθαµε ότι µπορούµε να χρησιµοποιούµε τη ρητή ή την αυτονόητη δήλωση µεταβλητών

Διαβάστε περισσότερα

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #5: Διαγράμματα ροής (Flow Charts), Δομές επανάληψης Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Διαγράμματα ροής (Flow Charts), Δομές επανάληψης

Διαβάστε περισσότερα

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

Διαβάστε περισσότερα

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

Διαβάστε περισσότερα

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

ιαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ιαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 2 ο : Εντολές ελέγχου > εντολές υπό συνθήκη Στόχοι μαθήματος Να κατανοήσετε τη σχέση μεταξύ εντολών και παραστάσεων. Να αναγνωρίζετε

Διαβάστε περισσότερα

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #4: Εισαγωγή στο MATLAB Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Εισαγωγή στο MATLAB Α. Καλαμπούνιας MATLAB? MATrix LABoratory Εργαστήριο Πινάκων

Διαβάστε περισσότερα

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός

Διαβάστε περισσότερα

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

Διαβάστε περισσότερα

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

Διαβάστε περισσότερα