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

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pascal. 15 Νοεμβρίου 2011

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

Υπολογισμός αθροισμάτων

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

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

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Προγραμματισμός ΙI (Θ)

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

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

Συναρτήσεις. Υποπρόγραμμα

Προγραμματισμός με Logo στο MicroWorlds Pro

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

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

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

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

Κατανεμημένα Συστήματα

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Δομημένος Προγραμματισμός

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

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

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

Hase οδηγίες χρήσης.

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

τις αναδρομικές ακολουθίες (recursive sequences) στις οποίες ορίζαμε

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Προγραμματιστικό Περιβάλλον

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

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

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

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

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

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

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

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

Λειτουργικά Συστήματα Ι - Εργαστήριο

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

Λίστες στο Scratch 2.0.

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Μεθόδων Επίλυσης Προβλημάτων

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

ΚΕΦΑΛΑΙΟ 5. Matlab GUI για FWSVM και Global SVM

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Ασκήσεις στα υποπρογράμματα

Εισαγωγή στο περιβάλλον Code::Blocks

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

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

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

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

Παιχνιδάκια με τη LOGO

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Τι είναι κλάση Κλάση

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

Hase οδηγίες χρήσης.

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Transcript:

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

Μ-files Στο Matlab μπορούμε να εκτελούμε μία σειρά από εντολές οι οποίες βρίσκονται αποθηκευμένες σε αρχεία τύπου *.m Υπάρχουν δύο είδη τέτοιων αρχείων τα script files και τα function files. Ένα script file περιλαμβάνει μία σειρά από εντολές matlab. Αν για παράδειγμα το αρχείο λέγεται roll.m, τότε η εντολή roll θα προκαλέσει την εκτέλεση όλων των εντολών του αρχείου. Τα function files παρέχουν επεκτασιμότητα στο matlab. Μπορούμε να δημιουργήσουμε δικές μας συναρτήσεις οι οποίες θα έχουν το ίδιο status με τις υπόλοιπες built-in συναρτήσεις.

Ορισμός συνάρτησης Αρχικά ανοίγουμε ένα καινούριο αρχείο μέσα στο οποίο θα γράψουμε τις εντολές για την συνάρτηση. Στο αρχείο αυτό ακολουθούμε τους παρακάτω κανόνες Πρέπει να ξεκινάει με τη λέξη function Όνομα της συνάρτησης, ίδιο με το όνομα του m file function [a,b,c]=funname(input1,input2) Μεταβλητές εξόδου (αν είναι περισσότερες από μία πρέπει να είναι μέσα σε []) Μεταβλητές εισόδου

Συναρτήσεις Η πρώτη γραμμή ονομάζεται Function header function [outputs] = function_name (inputs) Παρατηρούμε ότι η λέξη function γίνετε μπλε. ( η λέξη function ονομάζεται keyword). function [out]= myadder(a,b,c) out=a+b+c; end Παρατηρείστε επίσης την ενολή end που βάζουμε στο τέλος της συνάρτησης.

Παράδειγμα Στο παρακάτω παράδειγμα αν δεν ξέρετε τι κάνουν οι εντολές randint,floor αναζητήστε τς στο help manual. function a=randint(m,n) %This function generates a mxn %matrix of random integers %between 0 and 9 a=floor(10*rand(m,n)); end a=randint(5,3) a = 8 0 1 9 2 9 1 5 9 9 9 4 6 9 8

Συναρτήσεις Χρησιμοποιούμε σχόλια μέσα στις συναρτήσεις...

Παράδειγμα Κλήση της συνάρτησης myadder για να υπολογίσουμε το άθροισμα δύο αριθμών.

Διαφορετικοί τρόποι κλήσης μίας συνάρτησης Μπορούμε να χρησιμοποιήσουμε την συνάρτηση myadder για να υπολογίσουμε για παράδειγμα το άθροισμα του αποτέσματος άλλων συναρτήσεψν, για παράδειγμα των sin (π), cos (π), και tan (π). Επίσης, θα μπορούσαμε στα ορίσματα της συνάρτησης να βάλουμε μία άλλη πράξη.

Επιστροφή τιμών από συνάρτηση Οι συναρτήσεις μπορούν να έχουν περισσότερες από μία τιμές / μεταβλητές επιστροφής

Επιστροφή τιμών από συνάρτηση Τι θα συμβεί αν δεν δώσουμε τιμή στην μεταβλητή B μέσα στην συνάρτηση mytrigsum? (unassigned )

Function Workspace Το workspace είναι ένας χώρος όπου αποθηκεύονται όλες οι μεταβλητές που δημιουργούμε στο command prompt. Μία συνάρτηση έχει το δικό της workspace. Το workspace της συνάρτησης είναι ο χώρος στην μνήμη που δεσμέυεται για τις μεταβλητές που χρησιμοποιεί η συνάρτηση. Το workspace της συνάρτησης δεν είναι το ίδιο με το workspace του command window. Επομένως μία μεταβλητή που έχουμε ορίσει στο command window μπορεί να χρησιμοποιηθεί σε μία συνάρτηση, χωρίς να αλλάξει η τιμή που έχει έξω από την συνάρτηση. Το workspace της συνάρτησης χρησιμοποιείται κάθε φορά που καλούμε τη συνάρτηση.

Function Workspace Ας το δοκιμάσουμε! Ποια θα είναι η τιμή της μεταβλητής out? (η μεταβλητή out χρησιμοποιείται μέσα στην συνάρτηση myadder) Η μεταβλητή out χρησιμοποιείται στο function workspace της συνάρτησης myadder. Επομένως δε μπορεί να επηρεάσει άλλες μεταβλητές και ενέργειες σε άλλο workspace.

Function Workspace Στη συνέχεια θα δούμε ένα από τους λόγους για τους οποίους δεν πρέπει να αφήνουμε γραμμές χωρίς ερωτηματικά μέσα σε μία συνάρτηση. Ας αλλάξουμε την συνάρτηση myadder έτσι ώστε να μην έχει το ερωτηματικό στην γραμμή out = a + b + c, και επιπλέον έχει άλλη μία εντολή όπου θέτει την τιμή 2 στην μεταβλητή y (επίσης χωρίς ερωτηματικό).

Function Workspace Κοιτώντας προσεχτικά τα πραδείγματα μπορείτε να σκεφτείτε κάποιους λόγους για τους οποίους χρειαζόμαστε ξεχωριστά workspaces? Τα διαφορετικά workspaces προστεύεουν μία συνάρτηση από εξωτερικές επιρροές. Το μόνο που μπορεί να επηρεάσει το τι θα συμβεί στην συνάρτηση είναι οι μεταβλητές εισόδου, και το μόνο που μπορεί να ξεφύγει από την συνάρτηση είναι οι μεταβλητές που αυτή επιστρέφει!

Παράδειγμα

Matlab path Όταν μια συνάρτηση καλείται στη γραμμή εντολών ή μέσα από μια συνάρτηση, to MATLAB πρέπει να αναζητήσει το m-file το οποίο θα εκτελεστεί. Το MATLAB αναζητά τη λειτουργία αυτή μέσω του MATLAB path. Το MATLAB path είναι η σειρά με την οποία το MATLAB ψάχνει για μια συνάρτηση, όταν αυτή καλείται. Όταν MATLAB καλείται να εκτελέσει μια συνάρτηση, ψάχνει πρώτα για την εν λόγω συνάρτηση στον τρέχοντα φάκελο εργασίας (current working directory) ή την αναζητά ως subfunction (που περιγράφεται στην επόμενη ενότητα).

Matlab path Αν δεν είναι η συνάρτηση στον τρέχοντα φάκελο ή σε subfunction,τότε το MATLAB την αναζητά σε φακέλους κατά μήκος της διαδρομής του MATLAB path μέχρι να βρει το κατάλληλο m-file για να εκτελέσει. Προσπαθήστε να καλέσετε τον ανύπαρκτο αβψδεφδ λειτουργία για την τιμή εισόδου, 4, και να ορίσετε την έξοδο στη μεταβλητή, a.

Matlab path Εάν υπάρχουν δύο συναρτήσεις με το ίδιο όνομα στο MATLAB path, MATLAB θα εκτελέσει τη συνάρτηση που συνάντησε πρώτη φορά στην αναζήτησή του. Γράφοντας μια συνάρτηση με το ίδιο όνομα με μια άλλη και τοποθετώντας την σε υψηλότερη διαδρομή στο MATLAB path, ονομάζεται υπερφόρτωση. Μπορείτε να δείτε το MATLAB path πατώντας File Set Path

Subfunctions Από τη στιγμή που θα γράψετε και θα αποθυκέυσετε την δική σαε συνάρτηση αυτή θα συμπεριφέρεται όπως οποιαδήποτε άλλη συνάρτηση στο MATLAB. Μπορείτε να καλέσε την συνάρτηση στο command window ή άλλες συναρτήσεις να καλούν τη συνάρτησής σας. Έαν subfunction είναι μία συνάρτηση, η οποία ορίζεται στο ίδιο m-file με την κύρια/βασική συνάρτηση (parent function) Μόνο η parent function μπορεί να καλέσει την subfunction. Παρόλα αυτά η subfunction διατηρεί ένα ξεχωριστό workspace από την βασική της συνάρτηση(parent function). Μία subfunction ορίζεται μετά το end statement της βασικής συνάρτησης, και πρέπει να έχει και ένα δικό της end.

Παράδειγμα subfunctions Οι μεταβλητές D, x, και y εμφανίζονται και στην mydistxyz και στην mydist. Αυτό επιτρέπεται γιατί το subfunction έχει ξεχωριστό workspace. Τα Subfunctions είναι χρήσιμα όταν θέλουμε νε εκτέσουμε μία εργασία πολλές φορές μέσα σε μία συνάρτηση, αλλά όχι έξω από τν συνάρτηση αυτή.. Με αυτό τον τρόπο μπορούμε να φτιάχνουμε αποδοτικές συναρ τησεις χωρίς να γεμίζουμε το working directory με επιπλέον m-files.

Παράδειγμα subfunctions Δοκιμάστε το! Καλέστε την mydistxyz για x = [0 0], y = [0 1], z = [1 1]. Δοκιμάστε τώρα να καλέσετε την subfunction mydist από το command prompt.

Script Files Ένα script file είναι ένα m-file που περιέχει μία ακολουθία από εντολές αλλά δεν είναι συνάρτηση. Σε αντίθεση με τις συνάρτήσεις το script μοιράζεται το ίδιο workspace με τον τρέχοντα φάκελο ( current directory). Ένα script δημιουργείται απλά γράφοντας γραμμές με εντολές όπως θα τις γράφαμε και στο command prompt. Το script εκτελείται όταν γράψουμε το όνομα του στο command prompt ή πατώντας το κουμπί Run.

Ασκήσεις Έστω ο πίνακας Μ Γράψτε μία συνάρτηση [M] = mycheckerboard(n), που όταν την καλούμε να έχουμε το παρακάτω αποτέλεσμα

Αναδρομή Υπολογισμός του παραγοντικού με αναδρομή

Άσκηση Γράψτε μία αναδρομική συνάρτηση που υπολογίζει τον ν-οστό Fibonacci αριθμό.