matlab

ΕΙΣΑΓΩΓΗ

Το MATLAB είναι ένα διαδραστικό (interactive) πρόγραμμα για αριθμητικούς υπολογισμούς και οπτικοποίηση δεδομένων (data visualization) με δυνατότητες προγραμματισμού που το καθιστούν ένα ισχυρό και χρήσιμο εργαλείο στις μαθηματικές και φυσικές επιστήμες. Παρουσιάστηκε για πρώτη φορά στα τέλη της δεκαετίας του 1970 από τον Cleve Moler, ο οποίος ίδρυσε την MathWorks, την εταιρεία που παράγει και συντηρεί το MATLAB. Το όνομά του προέρχεται από τα αρχικά γράμματα των λέξεων MATtrix LABoratory (εργαστήριο πινάκων).  Το MATLAB χρησιμοποιείται ευρέως στη μηχανική, την επιστήμη για ανάλυση δεδομένων, επεξεργασία σήματος, συστήματα ελέγχου και πολλές άλλες εφαρμογές.

Το MATLAB σάς επιτρέπει να εκτελείτε μια ποικιλία αριθμητικών υπολογισμών. Περιλαμβάνει επίσης ενσωματωμένες λειτουργίες για τη δημιουργία και την προσαρμογή γραφημάτων, καθιστώντας το ένα ισχυρό εργαλείο για την οπτικοποίηση δεδομένων. Επιπλέον, το MATLAB μπορεί να διασυνδέεται με άλλες γλώσσες προγραμματισμού, όπως C, C++ και Fortran, και έχει εκτεταμένη υποστήριξη για εργασία με εξωτερικό υλικό, όπως κάμερες, αισθητήρες και άλλες συσκευές.

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

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

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

ΠΕΡΙΒΑΛΛΟΝ MATLAB

Το MATLAB χρησιμοποιεί μια γλώσσα προγραμματισμού παρόμοια με άλλες γλώσσες προγραμματισμού υψηλού επιπέδου, όπως η Python ή η Java. Ωστόσο, το MATLAB έχει τη δική του σύνταξη και συμβάσεις που θα πρέπει να μάθετε. Ευτυχώς, το MATLAB περιλαμβάνει εκτενή τεκμηρίωση και αρχεία βοήθειας που μπορούν να σας καθοδηγήσουν στη διαδικασία εκμάθησης. Περιλαμβάνει επίσης έναν ισχυρό επεξεργαστή για τη σύνταξη και την επεξεργασία κώδικα MATLAB. Το πρόγραμμα επεξεργασίας παρέχει επισήμανση σύνταξης, αυτόματη συμπλήρωση και άλλες δυνατότητες που διευκολύνουν τη σύνταξη και τον εντοπισμό σφαλμάτων του κώδικά σας.

 

Όταν ξεκινήσετε για πρώτη φορά το MATLAB, θα εμφανιστούν τέσσερα παράθυρα. (εικόνα 1)
  1. Το μεγάλο παράθυρο εντολών (Command Window) στα δεξιά. Οι εντολές της MATLAB εισάγονται σ’ αυτό το παράθυρο μετά την προτροπή (prompt) >>. Τα αποτελέσματα επίσης τυπώνονται στο παράθυρο αυτό (προεπιλογή).
  2. Ένα μικρό παράθυρο πάνω αριστερά που δείχνει τον τρέχοντα φάκελο (Current Directory) και τα αρχεία που εμφανίζονται σ’ αυτόν. Αν το παράθυρο είναι κρυμμένο, επιλέξτε Current Directory.
  3. Ένα παράθυρο που εναλλάσσεται με το παράθυρο τρέχοντα φακέλου ανάλογα με την επιλογή Workspace ή Current Directory είναι το παράθυρο του χώρου εργασίας (workspace). Αν το παράθυρο είναι κρυμμένο, επιλέξτε Workspace.
  4. Ένα παράθυρο κάτω αριστερά που δείχνει το ιστορικό εντολών (Command History). Αν δεν εμφανιστεί το παράθυρο αυτό επιλέξτε Command History στην επιλογή View. Με τον ίδιο τρόπο μπορείτε να κλείσετε το παράθυρο αυτό.

Περιεχόμενα – Περιβάλλον Matlab :

  • Πρώτη φορά με το Matlab
  • Βασικές οδηγίες για το παράθυρο εντολών
  • Οι εντολές clear και clc
  • Η εντολή format
εικόνα 1

Όταν ξεκινήσετε για πρώτη φορά το MATLAB, θα εμφανιστούν τέσσερα παράθυρα.

  1. Το μεγάλο παράθυρο εντολών (Command Window) στα δεξιά. Οι εντολές της MATLAB εισάγονται σ’ αυτό το παράθυρο μετά την προτροπή (prompt) >>. Τα αποτελέσματα επίσης τυπώνονται στο παράθυρο αυτό (προεπιλογή).
  2. Ένα μικρό παράθυρο πάνω αριστερά που δείχνει τον τρέχοντα φάκελο (Current Directory) και τα αρχεία που εμφανίζονται σ’ αυτόν. Αν το παράθυρο είναι κρυμμένο, επιλέξτε Current Directory.
  3. Ένα παράθυρο που εναλλάσσεται με το παράθυρο τρέχοντα φακέλου ανάλογα με την επιλογή Workspace ή Current Directory είναι το παράθυρο του χώρου εργασίας (workspace). Αν το παράθυρο είναι κρυμμένο, επιλέξτε Workspace.
  4. Ένα παράθυρο κάτω αριστερά που δείχνει το ιστορικό εντολών (Command History). Αν δεν εμφανιστεί το παράθυρο αυτό επιλέξτε Command History στην επιλογή View. Με τον ίδιο τρόπο μπορείτε να κλείσετε το παράθυρο αυτό.

Η έξοδος από το πρόγραμμα μπορεί να γίνει με τους εξής τρόπους:

  • με την εντολή quit ή την εντολή exit στο παράθυρο εντολών (Command Window),
  • με κλικ στο τετραγωνίδιο [x] που βρίσκεται πάνω δεξιά στο παράθυρο της MATLAB, και
  • με την επιλογή File → Exit MATLAB στο παράθυρο εργασίας.

Εάν χρειαστείτε βοήθεια ή πληροφορίες σχετικά με εντολές Matlab μπορείτε να τις αναζητήσετε με τους εξής τρόπους:

  • Από την γραμμή εντολών, χρησιμοποιώντας την εντολή ‘ >> help
  • Από το ξεχωριστό παράθυρο του help που βρίσκεται κάτω από το μενού help
  • Από την υποστήριξη του matlab

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

  • Στο MATLAB υπάρχει διάκριση μεταξύ μικρών και κεφαλαίων γραμμάτων (οι μεταβλητές Α και a είναι διαφορετικές μεταξύ τους).
  • Όταν γράψουμε το όνομα μιας μεταβλητής, η MATLAB τυπώνει στην οθόνη την τιμή της.
  • Αν γράψουμε το σύμβολο ’;’ στο τέλος μιας εντολής, το αποτέλεσμά της δεν τυπώνεται στην οθόνη.
  • Μπορούμε να γράψουμε μια ακολουθία εντολών της MATLAB σε μια γραμμή χωρίζοντάς τις με κόμματα ή ερωτηματικά.
  • Πατώντας τα πλήκτρα με τα πάνω και κάτω βέλη ([↑] και [↓]) μπορούμε να διατρέξουμε όλες τις προηγούμενες εντολές. Επίσης μια προηγούμενη εντολή μπορεί να επαναληφθεί αν γράψουμε τα πρώτα γράμματα και μετά πατήσουμε το πλήκτρο με το πάνω βέλος [↑].

 Η εντολή clear var διαγράφει τη μεταβλητή var του χώρου εργασίας. Η εντολή clear διαγράφει όλες τις ενεργές μεταβλητές. Το ίδιο κάνει και η εντολή clear variables. Αν θέλουμε να διαγράψουμε μόνο τις μεταβλητές var1, var2 και var3 μπορούμε να γράψουμε clear var1 var2 var3 (οι var1, var2 και var3 χωρίζονται με κενά και όχι με κόμματα).

Η προεπιλογή της MATLAB στην απεικόνιση των αποτελεσμάτων στο παράθυρο εντολών είναι να αφήνει κενές ενδιάμεσες γραμμές, έχουμε δηλαδή αραιή απεικόνιση. Με την εντολή format compact παίρνουμε πυκνή απεικόνιση αφού οι ενδιάμεσες κενές γραμμές παραλείπονται. Με την εντολή format loose επανερχόμαστε στην αραιή απεικόνιση.

Η εντολή format καθορίζει επίσης τον τρόπο με τον οποίο απεικονίζονται οι πραγματικοί αριθμοί καθώς και το πλήθος των σημαντικών ψηφίων που θα εμφανιστούν στο παράθυρο εντολών. Όλες οι πράξεις στη MATLAB γίνονται με διπλή ακρίβεια (double precision). Για την εκτύπωση ενός αριθμού στην οθόνη η προεπιλογή της MATLAB είναι αυτή της σταθερής υποδιαστολής με 4 σημαντικά ψηφία μετά την υποδιαστολή. Αν ένας μη ακέραιος αριθμός είναι πολύ μεγάλος τότε η MATLAB χρησιμοποιεί τον εκθετικό συμβολισμό, δηλ. ο αριθμός εμφανίζεται σε μορφή κινητής υποδιαστολής, πάλι με 4 σημαντικά ψηφία μετά την υποδιαστολή. Με την εντολή format long η MATLAB μας δίνει 15 σημαντικά ψηφία. Με την εντολή format short ή απλώς format μπορούμε να επανέλθουμε στην προεπιλογή των 4 σημαντικών ψηφίων μετά την υποδιαστολή.

ΤΕΛΕΣΤΕΣ ΜΕΤΑΒΛΗΤΕΣ

Προτεραιότητα πράξεων

Όπως και στις γλώσσες προγραμματισμού FORTRAN και C, η MATLAB ακολουθεί τους συνήθεις αλγεβρικούς κανόνες για την σειρά εκτέλεσης πράξεων:

  1. Πρώτα εκτελούνται οι πράξεις μέσα σε παρενθέσεις από τα μέσα προς τα έξω.
  2. Μετά εκτελούνται οι υψώσεις σε δύναμη.
  3. Μετά εκτελούνται οι πολλαπλασιασμοί και διαιρέσεις από τα αριστερά προς τα δεξιά.
  4. Τέλος, εκτελούνται οι προσθέσεις και αφαιρέσεις από τα αριστερά προς τα δεξιά.

Περιεχόμενα – Τελεστές Μεταβλητές:

  • Προτεραιότητα πράξεων
  • Αριθμητικοί τελεστές
  • Σχεσιακοί τελεστές
  • Λογικοί τελεστές
  • Τελεστές εκχώρησης
  • Τελεστές συμβολοσειρών
  • Μεταβλητές
  • Βαθμωτές
  • Διανύσματα
  • Πίνακες (Matrices)
  • Πίνακες (Arrays )

Τελεστές

Για να χρησιμοποιήσετε αποτελεσματικά το MATLAB, θα πρέπει να εξοικειωθείτε με τους τελεστές του.

Το MATLAB υποστηρίζει μια ποικιλία αριθμητικών τελεστών για την εκτέλεση μαθηματικών πράξεων, όπως πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση κ.α.. Να μερικά παραδείγματα:

  • c = a + b; % πρόσθεση
  • d = a – b; % αφαίρεση
  • e = a * b; % πολλαπλασιασμός
  • f = a / b; % διαίρεση
  • g = a ^ b; % ύψωση σε δύναμη

Το MATLAB υποστηρίζει επίσης σχεσιακούς τελεστές για σύγκριση τιμών. Αυτοί οι τελεστές επιστρέφουν μια λογική τιμή (true ή false) ανάλογα με το αν η σύγκριση είναι true ή false. Να μερικά παραδείγματα:

  • c = a > b; % μεγαλύτερο από
  • d = a < b; % μικρότερο από
  • e = a == b; % ίσο με
  • f = a ~= b; % όχι ίσο με

Το MATLAB υποστηρίζει επίσης λογικούς τελεστές για την εκτέλεση λογικών πράξεων σε τιμές. Αυτοί οι τελεστές επιστρέφουν μια λογική τιμή (true ή false) ανάλογα με τη λογική λειτουργία που εκτελείται. Να μερικά παραδείγματα:

  • α = true;
  • b = false;
  • c = a && b; % logical AND
  • d = a || σι; % logical OR
  • e = ~a; % logical NOT

Το MATLAB υποστηρίζει επίσης τελεστές εκχώρησης για την εκχώρηση τιμών σε μεταβλητές. Αυτοί οι τελεστές παρέχουν έναν συνοπτικό τρόπο εκχώρησης τιμών σε μεταβλητές. Να μερικά παραδείγματα:

  • a = 10;
  • a += 5; % ισοδύναμο με a = a + 5
  • a -= 5; % ισοδύναμο με a = a – 5
  • a *= 5; % ισοδύναμο με a = a * 5
  • a /= 5; % ισοδύναμο με a = a / 5

Το MATLAB υποστηρίζει επίσης τελεστές συμβολοσειρών για εργασία με συμβολοσειρές. Αυτοί οι τελεστές περιλαμβάνουν τελεστές συνένωσης και σύγκρισης. Να μερικά παραδείγματα:

a = ‘hello’;

b = ‘world’;

c = [a, b]; % συνένωση συμβολοσειρών

 d = strcmp(a, b); % σύγκριση συμβολοσειρών

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

ΜΕΤΑΒΛΗΤΕΣ

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

Οι βαθμωτές είναι μεταβλητές που έχουν μια μεμονωμένη τιμή, όπως έναν αριθμό ή μια συμβολοσειρά. Να μερικά παραδείγματα:

a = 10; % βαθμωτή μεταβλητή με τιμή 10

b = ‘Hello’; % βαθμωτή μεταβλητή με τιμή “Hello”

Τα διανύσματα είναι μεταβλητές που περιέχουν ένα σύνολο τιμών σε μία στήλη ή γραμμή. Μπορείτε να δημιουργήσετε διανύσματα χρησιμοποιώντας τον τελεστή άνω και κάτω τελείας ή τη συνάρτηση linspace. Να μερικά παραδείγματα:

a = 1:5; % διάνυσμα με τιμές 1, 2, 3, 4, 5

 b = linspace(0, 1, 11); % διάνυσμα με 11 τιμές μεταξύ 0 και 1

Οι πίνακες είναι μεταβλητές που περιέχουν ένα σύνολο τιμών σε γραμμές και στήλες. Μπορείτε να δημιουργήσετε πίνακες χρησιμοποιώντας τις αγκύλες [ ] και τον τελεστή ερωτηματικό όταν θέλετε να προσθέσετε μία καινούργια γραμμή στον πίνακα ή τη συνάρτηση ανασχηματισμού. Να μερικά παραδείγματα:

a = [1 2 3; 4 5 6; 7 8 9]; % 3×3 matrix

b = reshape(1:9, 3, 3); % 3×3 matrix με τιμές 1, 2, 3, 4, 5, 6, 7, 8, 9

Οι πίνακες είναι μεταβλητές που διαθέτουν πολλαπλές τιμές του ίδιου τύπου, όπως μια συμβολοσειρά ή ένας αριθμητικός πίνακας. Να μερικά παραδείγματα:

a = [10 20 30]; % αριθμητικός πίνακας

b = {‘μήλο’, ‘μπανάνα’, ‘πορτοκαλί’}; % συστοιχία κελιών συμβολοσειρών

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

ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ

Στο MATLAB, οι βρόχοι if και for είναι βασικές εντολές ελέγχου που σας επιτρέπουν να εκτελέσετε ορισμένα κομμάτια κώδικα βάσει συγκεκριμένων συνθηκών ή επανειλημμένα για συγκεκριμένο αριθμό φορών.

Δηλώσεις IF:

Η εντολή if είναι μια δομή ελέγχου που σας επιτρέπει να εκτελέσετε ένα συγκεκριμένο μπλοκ κώδικα μόνο όταν πληρούται μια συγκεκριμένη συνθήκη. Ακολουθεί η βασική σύνταξη μιας εντολής if στο MATLAB:

if condition

    statement(s)

end

Ο κώδικας μέσα στη δήλωση if εκτελείται μόνο όταν η συνθήκη είναι αληθής. Εάν η συνθήκη είναι ψευδής, ο κωδικός μέσα στη δήλωση if παραλείπεται. Ακολουθεί ένα παράδειγμα χρήσης μιας δήλωσης if για να ελέγξετε εάν ένας αριθμός είναι θετικός:

x = 5;

if x > 0

    disp(‘x is positive’)

end

Αυτός ο κωδικός θα εμφανίσει το μήνυμα “x είναι θετικό” επειδή η συνθήκη x > 0 είναι αληθής.

Περιεχόμενα:

FOR

Ο βρόχος for είναι μια δομή ελέγχου που σας επιτρέπει να επαναλάβετε ένα συγκεκριμένο μπλοκ κώδικα για σταθερό αριθμό φορές. Ακολουθεί η βασική σύνταξη ενός βρόχου for στο MATLAB:

for index = values

    statement(s)

end

Αυτός ο κωδικός θα εμφανίσει τους αριθμούς 1 έως 5, ο καθένας σε ξεχωριστή γραμμή.

Μπορείτε επίσης να χρησιμοποιήσετε έναν βρόχο for για να επαναλάβετε τα στοιχεία ενός πίνακα ή πίνακα. Ακολουθεί ένα παράδειγμα (Kώδικας for) χρήσης ενός βρόχου for για τον υπολογισμό του αθροίσματος των στοιχείων σε έναν πίνακα

Εξήγηση κώδικα:

Αυτός ο κώδικας θα εμφανίσει το άθροισμα των στοιχείων του πίνακα Α, το οποίο είναι 15.

Κώδικας for

A = [1 2 3 4 5];
sum = 0;
for i = 1:length(A)
    sum = sum + A(i);
end
disp(sum)
 

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

While

 Οι βρόχοι while είναι της μορφής:

while relation

statements

end

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

Εξήγηση κώδικα:

Το function m-file xlgmin.m, που φαίνεται πιο κάτω, βρίσκει τον ελάχιστο ακέραιο για τον οποίο ισχύει:

 log n ≥ x όπου x δοσμένος αριθμός.

Κώδικας for

function [n] = xlgmin(x) 
% function [n] = xlgmin(x)
 % Briskei ton elaxisto akeraio n gia ton opoio isxuei
 % log n >= x % O x prepei na einai gnhsia 0etikos 
 n = 1 ; 
while log(n) < x 
n = n+1; 
end 
% Telos tou xlgmin.m 
 

Οι εντολές break, return και continue

Οι βρόχοι for και while μπορούν να διακοπούν με την εντολή break η οποία μεταφέρει τον έλεγχο στην πρώτη εντολή μετά το τελικό end του βρόχου στον οποίο χρησιμοποιείται. Έτσι αν έχουμε εγκιβωτισμένους βρόχους ο έλεγχος περνά στον επόμενο (εξωτερικό βρόχο). Η εντολή break ορίζεται μόνο μέσα σε βρόχους for και while. Μια παρόμοια εντολή που μπορεί να χρησιμοποιηθεί εναλλακτικά και εκτός βρόχων for και while είναι η εντολή return. Γενικά η εντολή αυτή μεταφέρει τον έλεγχο στην καλούσα συνάρτησηή στο πληκτρολόγιο. Χρησιμοποιείται επίσης για τερματισμό της εντολής keyboard που μεταφέρει τον έλεγχο από ένα m-file στο πληκτρολόγιο. Όπως θα δούμε στη συνέχεια με την εντολή return μπορούμε να διακόψουμε όταν χρειάζεται την εκτέλεση των εντολών ενός m-file. Αν για παράδειγμα ένας πίνακας δεν είναι αντιστρέψιμος θα ήταν καλό να μην προχωρήσουμε στην εύρεση του αντιστρόφου του.

Switch

Η εντολή switch

Η εντολή switch-case μας δίνει τη δυνατότητα να επιλέξουμε για εκτέλεση μια ομάδα εντολών από άλλες πιθανές ομάδες. Η γενική της δομή έχει ως εξής: (Kώδικας switch) 

Σημειώνουμε τα εξής γι’ αυτή την εντολή:

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

Κώδικας for

switch switch_expression 
case value_1
    statement(s) 
case value_2 
    statement(s) 
case value_3 
    statement(s)
 otherwise 
    statement(s) 
end

ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

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

Plot:

Η εντολή plot σας επιτρέπει να δημιουργήσετε ένα τρισδιάστατο σχέδιο γραμμής των δεδομένων σας. Ακολουθεί η βασική σύνταξη της εντολής plot στο MATLAB:

plot(x,y)

Αυτή η εντολή σχεδιάζει τις τιμές στο διάνυσμα y έναντι των τιμών στο διάνυσμα x. Ακολουθεί ένα παράδειγμα χρήσης της εντολής plot για να σχεδιάσετε ένα ημιτονοειδές κύμα:

Αυτός ο κώδικας δημιουργεί μια γραφική παράσταση του ημιτονοειδούς κύματος μεταξύ 0 και 2π, όπως φαίνεται στην εικόνα.

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

 >> xlabel(‘x’)

>> ylabel(‘y=cos(x)’)

 >> title(‘Graph of cosine in [-pi, pi]’)

το γράφημα που παίρνουμε τώρα φαίνεται στην εικόνα 1 (δεξιά).

Η εντολή plot δουλεύει ακόμα και όταν τα δεδομένα εισόδου είναι μιγαδικοί αριθμοί. Σε αυτή την περίπτωση, το μιγαδικό μέρος των αριθμών αγνοείται, εκτός αν χρησιμοποιήσουμε μόνο ένα δεδομένο εισόδου οπότε το γράφημα που παίρνουμε αντιστοιχεί στη γραφική παράσταση του μιγαδικού μέρους έναντι του πραγματικού. Συγκεκριμένα, η εντολή plot(Z) όταν το Z είναι μιγαδικό διάνυσμα (ή πίνακας) είναι ισοδύναμη με την plot(real(Z), imag(Z)).

Περιεχόμενα – Γραφικές Παραστάσεις :

  • Η εντολή Plot
  • Η εντολή ezplot
  • Η εντολή comet
  • Η εντολή pie
  • Ιστογράμματα
εικόνα 1

Η συνάρτηση ezplot παράγει πιο εύκολα απ’ ότι η plot τη γραφική παράσταση της y = f(x), ειδικά αν η f είναι συνάρτηση βιβλιοθήκης ή ανώνυμη συνάρτηση ή έχει οριστεί μέσω της εντολής inline. Η συνάρτηση ezplot (easy plot) έχει σημαντικά πλεονεκτήματα σε σχέση με τις plot:

  • βρίσκει αυτόματα τα διαστήματα των αξόνων και δίνει επίσης τη δυνατότητα στο χρήστη να τα επιλέξει ο ίδιος,
  • μπορεί να κάνει το γράφημα πεπλεγμένης συνάρτησης, και
  • μπορεί να κάνει το γράφημα παραμετρικής καμπύλης. Αν f(x) είναι μια συνάρτηση βιβλιοθήκης ή συνάρτηση ορισμένη από το χρήστη, τότε
  • η ezplot(f) παράγει το γράφημα της f επιλέγοντας τα διαστήματα των αξόνων των x και y. Σύμφωνα με το εγχειρίδιο της MATLAB η προεπιλογή για το x είναι –2π < x < 2π.
  • Η ezplot(f, a, b) ή η ezplot(f, [a, b]) παράγει το γράφημα της f έτσι ώστε οι τιμές του x να βρίσκονται στο [a, b].

Μερικά παραδείγματα χρήσης της συνάρτησης φαίνονται πιο κάτω. Με την εντολή >> ezplot(‘exp(x)’) παίρνουμε το γράφημα:

Η εντολή comet μας δίνει ένα κινούμενο γράφημα μιας παραμετρικής καμπύλης. Ένας κύκλος που αποτελεί το κέντρο της καμπύλης διαγράφει την τροχιά που αντιστοιχεί στα σημεία της καμπύλης. Η πιο απλή της μορφή είναι η comet(x,y)

Παράδειγμα:

>> t=0:pi/1000:8*pi;

>> x=cos(t);

>> y=sin(t);

>> comet(x,y)

Θα πρέπει να σημειώσουμε ότι δεν μπορούμε να τυπώσουμε ή να αποθηκεύσουμε το γράφημα της καμπύλης. Το μόνο που τυπώνεται είναι το κέντρο της καμπύλης. 

Η εντολή bar σάς επιτρέπει να δημιουργήσετε ένα γράφημα ράβδων των δεδομένων σας. Ακολουθεί η βασική σύνταξη της εντολής γραμμής στο MATLAB:

bar(x,y)

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

colors = {‘red’,’blue’,’green’,’yellow’};

counts = [10 7 4 6];

bar(colors,counts)

Αυτός ο κώδικας δημιουργεί ένα γράφημα ράβδων με τον αριθμό των ατόμων που τους αρέσουν τα διαφορετικά χρώματα, με τα χρώματα στον άξονα x και τον αριθμό των ατόμων στον άξονα y.

Η εντολή pie σας επιτρέπει να δημιουργήσετε ένα γράφημα πίτας των δεδομένων σας. Ακολουθεί η βασική σύνταξη της εντολής pie στο MATLAB:

pie(x)

Αυτή η εντολή δημιουργεί ένα γράφημα πίτας με το μέγεθος κάθε φέτας να δίνεται από τις τιμές στο διάνυσμα x. Ακολουθεί ένα παράδειγμα χρήσης της εντολής pie για να σχεδιάσετε ένα γράφημα πίτας του αριθμού των αυτοκινήτων που πωλούνται από διαφορετικούς κατασκευαστές:

manufacturers = {‘Toyota’,’Ford’,’Honda’,’Chevrolet’};

sales = [15 10 5 8];

pie(sales,manufacturers)

Αυτός ο κωδικός δημιουργεί ένα γράφημα πίτας με τον αριθμό των αυτοκινήτων που πωλούνται από διαφορετικούς κατασκευαστές, με κάθε κομμάτι να φέρει ετικέτα με το όνομα του κατασκευαστή.

Τα ιστογράμματα (histograms) χρησιμοποιούνται εκτεταμένα στην Στατιστική. Στη MATLAB αυτά παράγονται με τη συνάρτηση hist. Αν y είναι ένα διάνυσμα, π.χ.,

>> y=randn(10000,1); τότε,

 >> hist(y)

>> grid

μας δίνει το πιο κάτω ιστόγραμμα (με πλέγμα).

 

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

Διανυσματα

Ένα διάνυσμα είναι ένα μαθηματικό αντικείμενο που έχει και μέγεθος (μήκος) και κατεύθυνση. Στο MATLAB, τα διανύσματα αναπαρίστανται ως πίνακες αριθμών. Ο πιο κοινός τύπος διανύσματος στο MATLAB είναι ένα διάνυσμα γραμμής, το οποίο είναι ένας μονοδιάστατος πίνακας αριθμών. Μπορούν επίσης να χρησιμοποιηθούν διανύσματα στηλών, τα οποία είναι μονοδιάστατοι πίνακες με στοιχεία στοιβαγμένα κάθετα.

coding, programming, working-924920.jpg

Περιεχόμενα – Διανύσματα :

  • Δημιουργία διανυσμάτων
  • Πράξεις με διανύσματα
  • Vector Norms
  • Παραδείγματα
  • Πολλαπλασιασμός πίνακα – διανύσματος
  • Διανυσματική συνένωση
  • Διανυσματική περιστροφή
  • Διανυσματική προβολή

Ένα διάνυσμα u = (u1, u2, …, un) εισάγεται στη MATLAB ως εξής:

>> u=[ u1, u2 , …, un ] ή >> u=[ u1 u2 … un]

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

Οι πίνακες ορίζονται με παρόμοιο τρόπο: δίνουμε τα στοιχεία κάθε γραμμής και για να υποδείξουμε την αλλαγή γραμμής χρησιμοποιούμε το σύμβολο ‘;’ ή απλά αλλάζουμε γραμμή.

Υπάρχουν διάφοροι τρόποι δημιουργίας διανυσμάτων στο MATLAB.

Ένας τρόπος είναι να χρησιμοποιήσετε τον τελεστή άνω και κάτω τελείας ( : ) , ο οποίος δημιουργεί ένα διάνυσμα με ίσες τιμές μεταξύ δύο τελικών σημείων. Για παράδειγμα, για να δημιουργήσετε ένα διάνυσμα ακεραίων από το 1 έως το 10, μπορείτε να πληκτρολογήσετε:

v = 1:10;

Αυτό θα δημιουργήσει ένα διάνυσμα γραμμής ‘v’ που περιέχει τις τιμές [1 2 3 4 5 6 7 8 9 10].

Ένας άλλος τρόπος για να δημιουργήσετε διανύσματα είναι να χρησιμοποιήσετε τη συνάρτηση linspace, η οποία δημιουργεί ένα διάνυσμα με ίσες τιμές μεταξύ δύο τελικών σημείων, αλλά σας επιτρέπει να καθορίσετε τον αριθμό των στοιχείων στο διάνυσμα. Για παράδειγμα, για να δημιουργήσετε ένα διάνυσμα με 100 ίσες τιμές μεταξύ 0 και 1, μπορείτε να πληκτρολογήσετε:

v = linspace(0, 1, 100);

Αυτό θα δημιουργήσει ένα διάνυσμα γραμμής v που περιέχει 100 τιμές μεταξύ 0 και 1.

Το MATLAB παρέχει πολλές λειτουργίες για εργασία με διανύσματα. Οι βασικές αριθμητικές πράξεις (+, -, *, /) μπορούν να χρησιμοποιηθούν για την εκτέλεση πράξεων βάσει στοιχείων σε διανύσματα. Για παράδειγμα, για να προσθέσετε δύο διανύσματα u και v, μπορείτε να πληκτρολογήσετε:

w = u + v;

Αυτό θα δημιουργήσει ένα νέο διάνυσμα w που περιέχει το άθροισμα των αντίστοιχων στοιχείων των u και v.

 

Μια άλλη σημαντική λειτουργία είναι το dot( ), το οποίο είναι μια βαθμωτή τιμή που αντιπροσωπεύει την προβολή ενός διανύσματος σε ένα άλλο. Στο MATLAB, το dot( ),  μπορεί να υπολογιστεί χρησιμοποιώντας τη συνάρτηση κουκκίδων. Για παράδειγμα, για να υπολογίσετε το γινόμενο κουκίδων δύο διανυσμάτων u και v, μπορείτε να πληκτρολογήσετε:

dp = dot(u, v);

Αυτό θα δημιουργήσει μια κλιμακωτή τιμή dp που αντιπροσωπεύει το γινόμενο κουκίδων των u και v.

Η νόρμα ενός διανύσματος είναι ένα μέτρο του μήκους ή του μεγέθους του. Το MATLAB παρέχει διάφορες συναρτήσεις για τον υπολογισμό των διανυσματικών κανόνων, συμπεριλαμβανομένου του κανόνα 1-norm, 2-norm και infinity norm. Ο 1-norm είναι το άθροισμα των απόλυτων τιμών των στοιχείων στο διάνυσμα, ο 2-norm είναι η τετραγωνική ρίζα του αθροίσματος των τετραγώνων των στοιχείων του διανύσματος και ο κανόνας του άπειρου είναι η μέγιστη απόλυτη τιμή του στοιχεία στο διάνυσμα.

 

Για να υπολογίσετε το 2-norm ενός διανύσματος v, μπορείτε να χρησιμοποιήσετε τη συνάρτηση norm. Για παράδειγμα, για να υπολογίσετε τον 2-norm ενός διανύσματος v, μπορείτε να πληκτρολογήσετε:

n = norm(v);

 

Αυτό θα δημιουργήσει μια κλιμακωτή τιμή n που αντιπροσωπεύει το 2-norm του v.

Παραδείγματα

Ακολουθούν μερικά παραδείγματα χρήσης διανυσμάτων στο MATLAB:

Παράδειγμα 1: Υπολογισμός του αθροίσματος ενός διανύσματος

input

Output:

v = [1 2 3 4 5];

s = sum(v);

disp(s);

15

Παράδειγμα 2: Εύρεση της μέγιστης τιμής σε ένα διάνυσμα

input

Output:

v = [1 2 3 4 5];

m = max(v);

disp(m);

5

Παράδειγμα 3: Προσθήκη διανυσμάτων

input

Output:

u = [1 2 3];

v = [4 5 6];

w = u + v;

disp(w);

5 7 9

Παράδειγμα 4: Κλιμακωτός πολλαπλασιασμός

input

Output:

v = [1 2 3];

s = 2;

w = s * v;

disp(w);

2 4 6

Παράδειγμα 5: Πολλαπλασιασμός διανυσμάτων

input

Output:

u = [1 2 3];

v = [4 5 6];

dp = dot(u, v);

disp(dp);

32

Example 6: Vector Norm

input

Output:

v = [1 2 3 4 5];

n = norm(v);

disp(n);

7.4162

Παράδειγμα 7: Πολλαπλασιασμός βάσει στοιχείων

input

Output:

u = [1 2 3];

v = [4 5 6];

w = u .* v;

disp(w);

4 10 18

Στο MATLAB, ένα διάνυσμα γραμμής μπορεί να μεταφερθεί για να γίνει διάνυσμα στήλης χρησιμοποιώντας τον τελεστή ‘. Για παράδειγμα:

input

Output:

v = [1 2 3];

c = v’;

disp(c);

1

2

3

Σημειώνουμε επίσης τα εξής:

  • ο ανάστροφος ενός πραγματικού πίνακα Α, συμβολίζεται με A’.
  • Οι εντολές A*A*A και A^3 όπου Α τετραγωνικός πίνακας είναι ισοδύναμες.
  • Μπορούμε να πολλαπλασιάσουμε όλα τα στοιχεία ενός πίνακα Α και ενός διανύσματος u με ένα αριθμό x (βαθμωτός πολλαπλασιασμός) x*A και x*u Με τον ίδιο τρόπο μπορούμε να διαιρέσουμε όλα τα στοιχεία με κάποιο μη μηδενικό αριθμό x: A/x και u/x
  • Μπορούμε να προσθέσουμε ή να αφαιρέσουμε ένα αριθμό x από όλα τα στοιχεία ενός πίνακα Α και ενός διανύσματος u: A – x και u + x

Στο MATLAB, μπορείτε να πολλαπλασιάσετε έναν πίνακα με ένα διάνυσμα χρησιμοποιώντας τον τελεστή *. Το αποτέλεσμα είναι ένα νέο διάνυσμα του οποίου τα στοιχεία είναι τα γινόμενα με τελείες των σειρών του πίνακα με το διάνυσμα. Για παράδειγμα:

input

Output:

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

v = [1; 2; 3];

w = A * v;

disp(w);

14

32

50

 

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

Στο MATLAB, μπορείτε να συνενώσετε δύο διανύσματα χρησιμοποιώντας τον τελεστή [ ]. Για παράδειγμα:

input

Output:

u = [1 2 3];

v = [4 5 6];

w = [u v];

disp(w);

1 2 3 4 5 6

Μπορείτε επίσης να συνδέσετε διανύσματα σε διαφορετικές διαστάσεις χρησιμοποιώντας τη συνάρτηση cat. Για παράδειγμα:

input

Output:

u = [1 2 3]’;

v = [4 5 6]’;

w = cat(2, u, v);

disp(w);

1   4

2   5

3   6

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

input

Output:

theta = pi/4; % 45 degrees

R = [cos(theta) -sin(theta); sin(theta) cos(theta)];

v = [1; 2];

w = R * v;

disp(w);

1.7071

2.1213

Στο MATLAB, μπορείτε να προβάλλετε ένα διάνυσμα u σε ένα άλλο διάνυσμα v χρησιμοποιώντας τον ακόλουθο τύπο:

proj_u_v = (dot(u,v) / norm(v)^2) * v;

ΠΑΡΑΔΕΙΓΜΑ

input

Output:

u = [1 2];

v = [3 4];

proj_u_v = (dot(u,v) / norm(v)^2) * v;

disp(proj_u_v);

0.8571    1.1429

πινακες

Εισαγωγή:

Ένας πίνακας στο MATLAB είναι μια συλλογή στοιχείων δεδομένων που έχουν τον ίδιο τύπο, όπως αριθμούς ή χαρακτήρες. Οι πίνακες μπορεί να είναι μονοδιάστατοι (διανύσματα), δισδιάστατοι (πίνακες) ή πολυδιάστατοι.

Δημιουργία πινάκων:

Υπάρχουν διάφοροι τρόποι για να δημιουργήσετε πίνακες στο MATLAB. Ένα από τα πιο απλά είναι να χρησιμοποιήσετε τον τελεστή [] για να δημιουργήσετε ένα διάνυσμα γραμμής:

Για να δημιουργήσετε έναν πίνακα, μπορείτε να χρησιμοποιήσετε τον τελεστή [] με ερωτηματικά ; για να διαχωρίσετε σειρές:

input

Output:

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

disp(A);

1   2   3

4   5   6

7   8   9

Μπορείτε επίσης να δημιουργήσετε έναν πίνακα μηδενικών ή μονάδων χρησιμοποιώντας τις συναρτήσεις zeros και ones, αντίστοιχα:

input

Output:

Z = zeros(3, 4);

disp(Z);

0 0 0 0

0 0 0 0

0 0 0 0

 

input

Output:

O = ones(2, 5);

disp(O);

1 1 1 1 1

1 1 1 1 1

Περιεχόμενα – Πίνακες:

  • Δημιουργία πινάκων
  • Ευρετηρίαση πίνακα
  • Πράξεις πινάκων
  • Πολλαπλασιασμός / Διαίρεση κατά στοιχεία
  • Πολλαπλασιασμός πινάκων
  • Αντιστροφή πίνακα
  • Συγχώνευση πινάκων
  • Reshape
  • Σύγκριση στοιχείων πινάκων
  • Size
  • Numel
  • Επίλυση γραμμικών συστημάτων

Μπορείτε να αποκτήσετε πρόσβαση σε μεμονωμένα στοιχεία ενός πίνακα χρησιμοποιώντας ευρετηρίαση. Στο MATLAB, η ευρετηρίαση ξεκινά από το 1 και όχι από το 0. Για να αποκτήσετε πρόσβαση στο στοιχείο στη σειρά i και στη στήλη j ενός πίνακα A, μπορείτε να χρησιμοποιήσετε τη σύνταξη A(i, j). Για παράδειγμα:

input

Output:

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

disp(A(2, 3));

6

Μπορείτε επίσης να χρησιμοποιήσετε τη δημιουργία ευρετηρίου για να εξαγάγετε έναν υποπίνακα ενός πίνακα. Για παράδειγμα, για να εξαγάγετε τις δύο πρώτες σειρές και τις δύο τελευταίες στήλες του A, μπορείτε να χρησιμοποιήσετε τη σύνταξη A(1:2, 2:3):

input

Output:

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

disp(A(1:2, 2:3));

2 3

5 6

Το MATLAB παρέχει πολλές λειτουργίες για εργασία με πίνακες. Ακολουθούν μερικά παραδείγματα:

Πρόσθεση/Αφαίρεση κατά στοιχείο:

input

Output:

A = [1 2 3; 4 5 6];

B = [2 2 2; 2 2 2];

C = A + B;

D = A – B;

disp(C);

disp(D);

3 4 5

6 7 8

 

-1 0 1

2 3 4

Παράδειγμα:

input

Output:

A = [1 2; 3 4];

B = [2 2; 2 2];

C = A .* B;

D = A ./ B;

disp(C);

disp(D);

2 4

6 8

 

0.5000 1.0000

1.5000 2.0000

Για να εκτελέσετε πολλαπλασιασμό πινάκων στο MATLAB, μπορείτε να χρησιμοποιήσετε τον τελεστή *. Για παράδειγμα:

input

Output:

A = [1 2; 3 4];

B = [5 6; 7 8];

C = A * B;

disp(C);

19 22

43 50

Ύψωση των στοιχείων του πίνακα σε δύναμη:

Για να υπολογίσετε την ύψωση των στοιχείων ενός πίνακα σε μία δύναμη, μπορείτε να χρησιμοποιήσετε τον τελεστή .^. Για παράδειγμα:

input

Output:

A = [1 2; 3 4];

B = A.^2;

disp(B);

1 4

9 16

Για να αντιστρέψετε έναν πίνακα, μπορείτε να χρησιμοποιήσετε τον τελεστή ‘ ή τη συνάρτηση transpose( ). Για παράδειγμα:

input

Output:

A = [1 2; 3 4];

B = A’;

C = transpose(A);

disp(B);

disp(C);

1 3

2 4

 

1 3

2 4

Για να συνδέσετε πίνακες στο MATLAB, μπορείτε να χρησιμοποιήσετε τον τελεστή [] ή τη συνάρτηση cat. Για παράδειγμα:

input

Output:

A = [1 2 3; 4 5 6];

B = [7 8 9; 10 11 12];

C = [A B];

D = cat(2, A, B);

disp(C);

disp(D);

1 2 3 7 8 9

4 5 6 10 11 12

 

1 2 3 7 8 9

4 5 6 10 11 12

 Για να αναδιαμορφώσετε έναν πίνακα στο MATLAB, μπορείτε να χρησιμοποιήσετε τη συνάρτηση reshape( ). Για παράδειγμα:

input

Output:

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12];

B = reshape(A, 3, 4);

disp(B);

1 7 4 10

2 8 5 11

3 9 6 12

Για να συγκρίνετε δύο πίνακες ως προς τα στοιχεία στο MATLAB, μπορείτε να χρησιμοποιήσετε τους τελεστές ==, >, <, >=, <= και ~=. Για παράδειγμα:

input

Output:

A = [1 2; 3 4];

B = [2 2; 4 4];

C = A == B;

D = A > B;

disp(C);

disp(D);

0 1

0 1

 

0 0

1 0

Για να λάβετε το μέγεθος ενός πίνακα στο MATLAB, μπορείτε να χρησιμοποιήσετε τη συνάρτηση μεγέθους. Για παράδειγμα:

input

Output:

A = [1 2 3; 4 5 6];

B = [1 2; 3 4; 5 6];

C = [1; 2; 3];

disp(size(A));

disp(size(B));

disp(size(C));

2 3

3 2

3 1

Η συνάρτηση size επιστρέφει ένα διάνυσμα με το μέγεθος κάθε διάστασης του πίνακα. Στο παραπάνω παράδειγμα, το Α έχει 2 σειρές και 3 στήλες, το Β έχει 3 σειρές και 2 στήλες και το C έχει 3 σειρές και 1 στήλη.

input

Output:

A = [1 2 3; 4 5 6];

B = [1 2; 3 4; 5 6];

C = [1; 2; 3];

disp(numel(A));

disp(numel(B));

disp(numel(C));

6

6

3

          
Η συνάρτηση numel επιστρέφει τον συνολικό αριθμό των στοιχείων στον πίνακα, ανεξάρτητα από τις διαστάσεις του. Στο παραπάνω παράδειγμα, τα Α, Β και Γ έχουν όλα συνολικά 6 στοιχεία.

  • triu(),
  • diag(),
  • tril(),
  • min(),
  • max(),
  • sum(),
  • mean(),
  • find():

Εντολή triu():

Η εντολή triu() επιστρέφει το πάνω τριγωνικό τμήμα ενός πίνακα. Για παράδειγμα:

input

Output:

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

B = triu(A);

disp(B);

1 2 3

0 5 6

0 0 9

Εντολή diag():

Η εντολή diag() επιστρέφει τα διαγώνια στοιχεία ενός πίνακα. Για παράδειγμα:

input

Output:

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

B = diag(A);

disp(B);

1

5

9

Εντολή tril():

Η εντολή tril() επιστρέφει το κάτω τριγωνικό τμήμα ενός πίνακα. Για παράδειγμα:

input

Output:

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

B = tril(A);

disp(B);

1 0 0

4 5 0

7 8 9

Min() Εντολή:

Η εντολή min() επιστρέφει την ελάχιστη τιμή σε έναν πίνακα. Για παράδειγμα:

input

Output:

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

B = min(A);

disp(B);

1 2 3

Εντολή max():

Η εντολή max() επιστρέφει τη μέγιστη τιμή σε έναν πίνακα. Για παράδειγμα:

input

Output:

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

B = max(A);

disp(B);

7 8 9

Εντολή sum():

Η εντολή sum() επιστρέφει το άθροισμα όλων των στοιχείων ενός πίνακα. Για παράδειγμα:

input

Output:

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

B = sum(A);

disp(B);

12 15 18

Εντολή mean():

 Η εντολή mean() επιστρέφει τη μέση τιμή όλων των στοιχείων ενός πίνακα. Για παράδειγμα:

input

Output:

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

B = mean(A);

disp(B);

4 5 6

Εντολή find():

Η εντολή find() επιστρέφει τους δείκτες των μη μηδενικών στοιχείων σε έναν πίνακα. Για παράδειγμα:

input

Output:

A = [1 0 3; 4 5 0; 7 0 9];

B = find(A);

disp(B);

1 4 7 9

Η εντολή find() επιστρέφει ένα διάνυσμα που περιέχει τους γραμμικούς δείκτες των μη μηδενικών στοιχείων του πίνακα. Στο παραπάνω παράδειγμα, τα μη μηδενικά στοιχεία βρίσκονται στις θέσεις (1,1), (2,1), (1,3) και (3,3), που αντιστοιχούν στους γραμμικούς δείκτες 1, 4, 7 , και 9, αντίστοιχα.

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

Για να λύσετε γραμμικά συστήματα στο MATLAB, μπορείτε να χρησιμοποιήσετε τον τελεστή mldivide ή backslash \. Να μερικά παραδείγματα:

Παράδειγμα 1: Επίλυση συστήματος γραμμικών εξισώσεων με τετραγωνικό πίνακα.

input

Output:

A = [1 2; 3 4];

b = [5; 11];

x = A \ b;

disp(x);

1

2

Παράδειγμα 2: Επίλυση συστήματος γραμμικών εξισώσεων με μη τετραγωνικό πίνακα.

input

Output:

A = [1 2 3; 4 5 6];

b = [7; 8];

x = A \ b;

disp(x);

-1

2

1

πολυωνυμα

Στη MATLAB τα πολυώνυμα αναπαριστώνται από διανύσματα που περιέχουν τους συντελεστές τους σε κατιούσα διάταξη. Για παράδειγμα το πολυώνυμο p(x)= x^2 – 3x + 5

αναπαρίσταται από το διάνυσμα p = [1, -3, 5 ] ενώ το διάνυσμα q = [ 1, 0, 7, -1, 0 ] παριστάνει το πολυώνυμο: q(x) = x^4 + 7x^2 – x

Εντολή roots():

Η εντολή roots() χρησιμοποιείται για να βρούμε τις ρίζες ενός πολυωνύμου. Για παράδειγμα

input

Output:

p = [1 -3 2];

r = roots(p);

disp(r);

2.0000

1.0000

Εντολή polyval():

 Η εντολή polyval() χρησιμοποιείται για την αξιολόγηση ενός πολυωνύμου σε μια δεδομένη τιμή. Για παράδειγμα:

input

Output:

p = [1 -3 2];

y = polyval(p, 2);

disp(y);

0

conv

Βρίσκει τη συνέλιξη (γινόμενο) δύο πολυωνύμων p(x) και q(x).

 Δομή: conv(p, q) p: το διάνυσμα που αντιστοιχεί στο πολυώνυμο p(x) q: το διάνυσμα που αντιστοιχεί στο πολυώνυμο q(x)

Deconv

 Βρίσκει τη αποσυνέλιξη (διαίρεση) δύο πολυωνύμων p(x) και q(x).

Δομή: [s, r] = deconv(p, q) p: το διάνυσμα που αντιστοιχεί στο πολυώνυμο p(x) q: το διάνυσμα που αντιστοιχεί στο πολυώνυμο q(x) s: το πηλίκο της διαίρεσης r: το υπόλοιπο της διαίρεσης

Περιεχόμενα – Πολυώνυμα:

  • Εντολή roots()
  • Εντολή polyval()
  • conv
  • Deconv
  • Προσαρμογή δεδομένων
  • Εντολή polyfit

Μια από τις πιο κύριες εφαρμογές των πολυωνύμων είναι η προσαρμογή δεδομένων (curve fitting), που είναι επίσης γνωστή ως παλινδρόμηση (regression). Σε αυτή τη διαδικασία, έχουμε σαν δεδομένα ένα πεπερασμένο αριθμό σημείων (σαν αυτά που φαίνονται στο πιο κάτω γράφημα), και θέλουμε να βρούμε μια συνάρτηση, συνήθως πολυώνυμο μικρού βαθμού, που να αντιπροσωπεύει τα δεδομένα, δηλ. να προσαρμόσουμε το πολυώνυμο στα δεδομένα.


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

Αν δεν απαιτήσουμε το πολυώνυμο να περνά από όλα τα σημεία, αλλά να έχει βαθμό μικρότερο από τον αριθμό των σημείων πλην ένα, τότε αυτό μπορεί να γίνει με διάφορες μεθόδους, η πιο συνηθισμένη των οποίων είναι η μέθοδος των ελάχιστων τετραγώνων (least squares method). Στα πιο κάτω γραφήματα φαίνονται δύο τέτοιες περιπτώσεις.

Στo MATLAB, τα πιο πάνω μπορούν να επιτευχθούν με την εντολή polyfit, η οποία

δουλεύει ως εξής: Έστω ότι τα ( xi , yi ) , i = 1,…, N + 1 είναι δεδομένα και έχουν

αποθηκευτεί σε δύο διανύσματα x και y, αντίστοιχα. Τότε, η εντολή

p = polyfit(x, y, Μ)

μας δίνει τους συντελεστές του πολυωνύμου p που έχει βαθμό Μ και που αντιπροσωπεύει τα δεδομένα. Σημειώνουμε ότι αν Μ = Ν, τότε παίρνουμε τους συντελεστές του πολυώνυμου παρεμβολής που περνά από όλα τα σημεία ( xi , yi ) ,

ενώ αν Μ < N τότε παίρνουμε τους συντελεστές ενός πολυωνύμου που προσαρμόζει τα δεδομένα με την μέθοδο των ελάχιστων τετραγώνων. Αν Μ > N, τότε το πολυώνυμο δεν είναι μοναδικό. Όμως αυτή η περίπτωση δεν παρουσιάζει ενδιαφέρον.

ΑΡΧΕΙΑ

Εισαγωγή:

Τα m-files είναι αρχεία κειμένου που περιέχουν κώδικα MATLAB που μπορούν να εκτελεστούν στο περιβάλλον MATLAB. Τα m-files σάς επιτρέπουν να δημιουργείτε προσαρμοσμένες συναρτήσεις, σενάρια και κλάσεις που μπορούν να χρησιμοποιηθούν επανειλημμένα στα προγράμματά σας στο MATLAB.

Δημιουργία m-file:

Για να δημιουργήσετε ένα m-file, μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου όπως το Σημειωματάριο ή το πρόγραμμα επεξεργασίας MATLAB. Στο περιβάλλον MATLAB, μπορείτε να δημιουργήσετε ένα νέο m-files επιλέγοντας File -> New -> M-File.

Αφού δημιουργήσετε ένα m-file, μπορείτε να γράψετε τον κώδικα MATLAB σε αυτό. Ο κώδικας μπορεί να περιλαμβάνει εντολές, συναρτήσεις και σχόλια MATLAB.

Αποθήκευση m-file:

Για να αποθηκεύσετε ένα m-file, πρέπει να του δώσετε ένα όνομα με την επέκταση .m. Για παράδειγμα, εάν ονομάσετε το αρχείο σας myfunc.m, το MATLAB θα το αναγνωρίσει ως m-file. Μπορείτε να αποθηκεύσετε το αρχείο σε οποιονδήποτε κατάλογο στον υπολογιστή σας.

Εκτέλεση m-file:

Υπάρχουν δύο τρόποι για να εκτελέσετε ένα m-file στο MATLAB: μπορείτε είτε να εκτελέσετε το αρχείο ως σενάριο είτε να καλέσετε τις συναρτήσεις μέσα στο αρχείο.

Για να εκτελέσετε το αρχείο ως σενάριο, απλώς πληκτρολογήστε το όνομα του αρχείου M στο παράθυρο εντολών και πατήστε enter. Για παράδειγμα, εάν το αρχείο σας ονομάζεται myscript.m, μπορείτε να το εκτελέσετε πληκτρολογώντας myscript στο παράθυρο εντολών.

Για να καλέσετε συναρτήσεις μέσα στο αρχείο, πρέπει πρώτα να ορίσετε τη συνάρτηση στο αρχείο. Για παράδειγμα, εάν έχετε μια συνάρτηση που ονομάζεται myfunc στο M-αρχείο σας, μπορείτε να την καλέσετε πληκτρολογώντας myfunc(ορίσματα) στο παράθυρο εντολών.

Περιεχόμενα – Πολυώνυμα:

  • Εντολή roots()
  • Εντολή polyval()
  • conv
  • Deconv
  • Προσαρμογή δεδομένων
  • Εντολή polyfit

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

function [outputs] = myfunc(inputs)

% Comments about the function

% MATLAB code for the function

end

Η πρώτη γραμμή του m-file ξεκινά με τη λέξη-κλειδί function και ακολουθείται από το όνομα της συνάρτησης (myfunc σε αυτήν την περίπτωση). Οι είσοδοι και οι έξοδοι της συνάρτησης καθορίζονται σε αγκύλες.

Η ενότητα σχολίων μπορεί να χρησιμοποιηθεί για να περιγράψει τον σκοπό της λειτουργίας και τον τρόπο λειτουργίας της. Ο κώδικας MATLAB για τη συνάρτηση βρίσκεται μεταξύ των σχολίων και της λέξης-κλειδιού τέλους.

Τα αρχεία Script  χρησιμοποιούνται για την εκτέλεση μιας σειράς εντολών MATLAB με συγκεκριμένη σειρά. Για να δημιουργήσετε ένα αρχείο Script  , απλώς γράφετε τις εντολές MATLAB στο αρχείο με τη σειρά που θέλετε να εκτελεστούν.

Ακολουθεί ένα παράδειγμα ενός αρχείου Script  που δημιουργεί έναν πίνακα και υπολογίζει το αντίστροφό του:

% Script M-file to compute the inverse of a matrix

 

A = [1 2 3; 4 5 6; 7 8 9]; % Create a matrix

B = inv(A); % Compute the inverse of the matrix

disp(B); % Display the inverse matrix

Σε αυτό το παράδειγμα, η ενότητα σχολίων περιγράφει τον σκοπό του σεναρίου και οι εντολές του MATLAB γράφονται με τη σειρά που πρέπει να εκτελεστούν.

Τα M-Files είναι ένα ισχυρό εργαλείο στο MATLAB που σας επιτρέπει να δημιουργείτε προσαρμοσμένες συναρτήσεις, σενάρια και κλάσεις. Χρησιμοποιώντας M-files, μπορείτε να γράψετε πιο αποτελεσματικό και οργανωμένο κώδικα για τα προγράμματα MATLAB σας.

NNSTART

Εισαγωγή:

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

Άνοιγμα nnstart:

Για να ανοίξετε το nnstart στο MATLAB, πληκτρολογήστε nnstart στο παράθυρο εντολών ή επιλέξτε Neural Network Toolbox -> Neural Network Start από το μενού MATLAB  και θα εμφανιστεί το παρακάτω παράθυρο:

Μόλις ανοίξετε το nnstart, θα δείτε μια γραφική διεπαφή χρήστη με πολλές καρτέλες: Σχεδίαση, Εκπαίδευση, Δοκιμή, Προσομοίωση και Προβολή. Κάθε καρτέλα περιέχει διαφορετικές επιλογές για το σχεδιασμό, την εκπαίδευση και την προσομοίωση νευρωνικών δικτύων.

Περιεχόμενα – Πολυώνυμα:

  • Εντολή roots()
  • Εντολή polyval()
  • conv
  • Deconv
  • Προσαρμογή δεδομένων
  • Εντολή polyfit

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

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

Για να εκπαιδεύσετε ένα νευρωνικό δίκτυο στο nnstart, επιλέξτε την καρτέλα Train. Από εδώ, μπορείτε να επιλέξετε τον αλγόριθμο εκπαίδευσης και να καθορίσετε τις παραμέτρους εκπαίδευσης, όπως τον αριθμό των εποχών και τον ρυθμό εκμάθησης.

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

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

 

Η καρτέλα Προσομοίωση σάς επιτρέπει να εισάγετε νέα δεδομένα στο δίκτυο και να δείτε την προβλεπόμενη έξοδο. Αυτό είναι χρήσιμο για την πραγματοποίηση προβλέψεων χρησιμοποιώντας το εκπαιδευμένο νευρωνικό δίκτυο.

Για να προβάλετε ένα νευρωνικό δίκτυο στο nnstart, επιλέξτε την καρτέλα Προβολή. Από εδώ, μπορείτε να δείτε την αρχιτεκτονική του δικτύου και τα βάρη.

Μπορείτε επίσης να εξαγάγετε το νευρωνικό δίκτυο ως κώδικα MATLAB, ο οποίος μπορεί να χρησιμοποιηθεί εκτός του nnstart.

Για την εκπαίδευση του νευρωνικού χρησιμοποιήθηκαν τα έτοιμα δεδομένα του matlab για building energy. Τα αποτελέσματα του νευρωνικού φαίνονται παρακάτω:

ΦΟΡΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ
Μπορείτε να προτείνετε ιδέες για βελτίωση της σελίδας, επίσης μπορείτε να βοηθήσετε στην βελτίωση του Cimi συμπληρώνοντας την φόρμα!
Scroll to Top