Matlab



Γενικά

Η MATLAB είναι ένα εύχρηστο και αρκετά ευέλικτο υπολογιστικό περιβάλλον για υλοποίηση επιστημονικών εφαρμογών σε ένα ευρύ φάσμα πεδίων, όπως η Γραμμική Άλγεβρα, η Στατιστική και η Επεξεργασία Σήματος και Εικόνας.

Το περιβάλλον της MATLAB υποστηρίζει την εκτέλεση απλών μαθηματικών υπολογισμών αλλά και πιο σύνθετων λειτουργιών πάνω σε εξειδικευμένες περιοχές εφαρμογών καθώς περιέχει ένα σύνολο συναρτήσεων και εξωτερικών βιβλιοθηκών (Toolboxes) για εφαρμογές όπως η στατιστική ανάλυση δεδομένων κ.α.


Το περιβάλλον εργασίας

Η Matlab είναι ήδη εγκατεστημένη στα SUN μηχανήματα του τμήματος (solaris 9.0). Για να ενεργοποιηθεί η MATLAB η εντολή είναι η: /usr/local/bin/matlab
Μπορεί επίσης να εγκατασταθεί και να εκτελεστεί και σε περιβάλλον WINDOWS.

Με την ενεργοποίηση της MATLAB εμφανίζεται ένα διαλογικό παράθυρο εντολών (prompt) : >> στο οποίο ο χρήστης μπορεί να πληκτρολογεί εντολές της γλώσσας προγραμματισμού MATLAB. Το περιβάλλον εργασίας <<θυμάται>> το σύνολο των εντολών που έχουν δοθεί καθώς και το σύνολο των μεταβλητών που έχουν δημιουργηθεί (workspace).

Το σύνολο των μεταβλητών που έχουν δημιουργηθεί εμφανίζεται με την εντολή who.

Με την εντολή clear all μπορούν να σβηστούν όλες οι μεταβλητές απο το workspace της MATLAB ενώ υπάρχει η δυνατότητα να καθοριστεί μία συγκεκριμένη μεταβλητή για σβήσιμο με την εντολή clear <όνομα μεταβλητής>

Η MATLAB παρέχει ένα πλήρες και εύχρηστο εγχειρίδιο για την λειτουργία κάθε εντολής το οποίο εμφανίζεται με την εντολή help, η οποία με όρισμα την εντολή για την οποία θέλουμε να αναζητήσουμε βοήθεια εμφανίζει ένα κείμενο με πληροφορίες για την λειτουργία της εντολής. π.χ >>help who
Σε περίπτωση που δεν καθοριστεί συγκεκριμένη εντολή σαν όρισμα, η εντολή help θα εμφανίσει όλα τα θέματα βοήθειας.

Εκτός του παραθύρου εντολών, υπάρχει η δυνατότητα να αποθηκευθεί ένα σύνολο εντολών (scripts) σε ένα αρχείο και να εκτελούνται όποτε αυτό απαιτείται. Τα αρχεία αυτά ονομάζονται M-Files και έχουν την επέκταση '.m'.


Βασικοί τελεστές και ειδικά σύμβολα

Μερικοί από τους βασικούς τελεστές τους οποίους υποστηρίζει η γλώσσα προγραμματισμού MATLAB είναι οι: Για την εισαγωγή σχολίων χρησιμοποιείται ο χαρακτήρας %.

Πίνακες

Στη MATLAB οι πίνακες υποστηρίζονται από αντίστοιχες μεταβλητές. 'Ενας πίνακας γράφεται μέσα σε αγκύλες "[]", τα στοιχεία μίας γραμμής χωρίζονται είτε με κενά είτε με "," ενώ κάθε γραμμή με ";" ή "return".
Για παράδειγμα, για να εκχωρήσουμε τον πίνακα A:

1 2 3
4 5 6
7 8 9
γράφουμε στο prompt της MATLAB:

>> A=[1,2,3;4,5,6;7,8,9];

Εαν υπάρχει ένα αρχείο στο οποίο είναι αποθηκευμένες οι τιμές που θέλουμε να εκχωρήσουμε σε έναν πίνακα, η εντολή που χρησιμοποιείται για την <<φόρτωση>> των δεδομένων στον πίνακα X είναι η:

X = load('filename');
όπου filename είναι το όνομα του αρχείου που περιέχει τα δεδομένα.

Εαν μετά το τέλος της εκχώρησης παραλειφθεί το ";" στο παράθυρο εντολών της MATLAB θα εμφανιστούν όλα τα στοιχεία (κατά στήλες) που περιέχει ο πίνακας ενώ εαν το ";" υπάρχει, δεν θα εμφανιστούν τα στοιχεία του πίνακα.
Η προσπέλαση ενός στοιχείου του πίνακα γίνεται δηλώνοντας μέσα σε παρένθεση τους δείκτες του:
>> A(2,2)
ans = 5

Η αναφορά σε τμήματα στοιχείων γίνεται με την χρήση του συμβόλου :. 'Ετσι, δηλώνοντας A(i:k, j:h) μπορούμε να απομονώσουμε τα στοιχεία του πίνακα Α που ανήκουν στις γραμμές i μέχρι και k και στις στήλες j μέχρι και h.

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

>>y = A(A>5)
y =6
7
8
9

Οι θέσεις ενός πίνακα που ικανοποιούν μία συνθήκη μπορούν να ανακτηθούν με την εντολή find. Ο τρόπος κλήσης της είναι [i,j] = find(A) και επιστρέφει τους δείκτες γραμμών και στηλών του πίνακα Α στις οποίες υπάρχουν μη μηδενικά στοιχεία:

>> [i j] = find(A>5)
i = 3
3
2
3
j = 1
2
3
3

Επίσης,ο αριθμός των γραμμών και των στηλών ενός πίνακα μπορεί να επιστρέφει με την συνάρτηση size(A).

Μία ακόμα χρήσιμη συνάρτηση είναι η X = rand(m,n), η οποία δημιουργεί έναν πίνακα X μεγέθους mxn ο οποίος περιέχει τυχαίες τιμές στο διάστημα [0,1].


Στοιχειώδεις εντολές

H MATLAB υποστηρίζει ορισμένες δομές ελέγχου για την δημιουργία ενός προγράμματος. Οι κυριότερες δομές ελέγχου είναι η δομή επιλογής if-else και η δομή επανάληψης for οι οποίες στη γενική περίπτωση έχουν την ακόλουθη σύνταξη:

if <συνθήκη1>
<σύνολο εντολών1>
elseif <συνθήκη2>
<σύνολο εντολών2>
else
<σύνολο εντολών3>
end


for <μετβλητή> = <αρχική_τιμή>:<βήμα>:<τελική_τιμή>
<σύνολο εντολών>
end

Για παράδειγμα, εαν θέλουμε να δημιουργήσουμε μία δομή με 10 επανάληψεις θα γράφαμε for i=1:10 (το βήμα θεωρείται ίσο με 1 όταν δεν καθορίζεται κάτι διαφορετικό) ενώ για μία δομή 50 επαναλήψεων θα μπορούσαμε να γράψουμε for i=1:2:100 όπου το βήμα είναι 2.

Σχεδίαση γραφικών

Στην MATLAB είναι δυνατόν να αναπαρασταθούν γραφικά τα δεδομένα (σημεία) ενός πίνακα 2 ή 3 διαστάσεων ή δύο διανυσμάτων. Για να γίνει αυτό χρησιμοποιείται η συνάρτηση scatter ή scatter3:

scatter(X,Y)
εμφανίζει κύκλους στα σημεία που ορίζονται απο τα διανύσματα Χ και Υ.

Υπάρχει επίσης η δυνατότητα να καθοριστεί ένα μέγεθος για τους κύκλους, ένα χρώμα για τους κύκλους και αν αυτοί θα εμφανίζονται γεμισμένοι ή όχι:

scatter(X,Y,Μ,color,'filled')
όπου Μ το μέγεθος το κύκλου (ακέραιος) και color κάποιο προκαθορισμένο χρώμα όπως 'b','g','r','y','k','c'.

Η αντίστοιχη συνάρτηση για γραφική παράσταση σημείων σε τρισδιάστατο χώρο που ορίζονται απο τα διανύσματα Χ,Υ,Ζ είναι η

scatter3(X,Y,Z,Μ,color,'filled')

Η συνάρτηση με την οποία αναπαρίστανται γραφικά οι τιμές ένος διανύσματος Χ σε συνάρτηση με τις τιμές ενός διανύσματος Υ είναι η

plot(X,Y)
ενώ στον τρισδιάστατο χώρο χρησιμοποιείται η
plot3(X,Y,Ζ)

'Οταν χρησιμοποιούνται δύο ή περισσότερες εντολές scatter ή plot διαδοχικά, τα περιεχόμενα της εικόνας που εμφανίζεται τροποποιούνται σβήνοντας ό,τι είχε απεικονιστεί απο την πρώτη εντολή και εμφανίζοντας μόνο τα περιεχόμενα της τελευταίας εντολής. Προκειμένου να δημιουργηθεί μία νέα εικόνα για να απεικονιστούν τα δεδομένα χρησιμοποιείται η εντολή figure ενώ με την εντολή hold on τα δεδομένα τόσο της πρώτης όσο και της τελευταίας εντολής θα απεικονιστούν στην ίδια εικόνα


Συναρτήσεις για συσταδοποίηση

Το περιβάλλον της MATLAB παρέχει ένα σύνολο ενσωματωμένων συναρτήσεων με τις οποίες μπορούμε να επιλύσουμε το πρόβλημα της συσταδοποίησης σε ένα σύνολο δεδομένων (data set). Το σύνολο των δεδομένων αναπαριστάται με έναν πίνακα NxP όπου N θεωρείται ο αριθμός των παρατηρήσεων (δεδομένων) και P είναι το πλήθος των γνωρισμάτων κάθε παρατήρησης. Οι κυριότερες απο τις συναρτήσεις αυτές περιγράφονται στη συνέχεια: