Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η...

63
Αριθμητικές Μέθοδοι και Προγραμματισμός Matlab Εισαγωγή ΕΔΙΠ Μαρία Λουκά Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Transcript of Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η...

Page 1: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Μέθοδοι και Προγραμματισμός

Matlab – Εισαγωγή

ΕΔΙΠ Μαρία Λουκά

Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Page 2: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Περιεχόμενα

Γνωριμία με το Matlab Τι είναι το Matlab;

Δομή προγράμματος

Σχόλια

Μεταβλητές και εντολές ανάθεσης τιμών

Τύποι Μεταβλητών - Χαρακτήρες και κωδικοποίηση

Αριθμητικές Παραστάσεις

Σχεσιακές Παραστάσεις

Αλγόριθμοι

Σενάρια

Είσοδος και έξοδος

Σενάρια με είσοδο και έξοδο

Page 3: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Γνωριμία με το Matlab

To Matlab είναι ένα πακέτο λογισμικού με μαθηματικές και γραφικές

δυνατότητες, το οποίο μας επιτρέπει να εκτελούμε αριθμητικούς

υπολογισμούς, να δημιουργούμε γραφικές παραστάσεις και να το

προγραμματίζουμε

Διαθέτει πολλές ενσωματωμένες συναρτήσεις για την εκτέλεση πολλών

λειτουργιών, ενώ υπάρχουν και εργαλειοθήκες (toolboxes) τις οποίες

μπορούμε να προσθέσουμε για να επαυξήσουμε αυτές τις συναρτήσεις

Δεν είναι ένα απλό κομπιουτεράκι

Page 4: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Τι είναι το Matlab;

Στον ιστοχώρο της εταιρείας Mathworks δίνεται ένας μεγάλος αριθμός τεχνολογικών περιοχών

εφαρμογής του συστήματος Matlab, οι πιο σημαντικές από τις οποίες είναι:

Αεροναυπηγική και Αεροδιαστημική Βιομηχανία

Αυτοκινητοβιομηχανία

Βιοτεχνολογία, φαρμακευτικές και Ιατρικές εφαρμογές

Τηλεπικοινωνίες

Υπολογιστικά Συστήματα

Ηλεκτρονικά

Οικονομικές εφαρμογές

Επιστήμες Γής και Θάλασσας

Βιομηχανικού Αυτοματισμοί

Χημική Βιομηχανία

Page 5: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Δομή προγράμματος

Page 6: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχόλια

Τα σχόλια είναι συμβολοσειρές ή εντολές οι οποίες δεν εκτελούνται.

Η προσθήκη σχολίων σε ένα αρχείο κώδικα είναι απαραίτητη για την περιγραφήτου κώδικα και του τρόπου χρήσης του.

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

Παράδειγμα

% Σχόλιο γραμμής

% Η εντολή αυτή υπολογίζει το μέσο όρο τριών αριθμών

% MO=(a+b+c)/3

Page 7: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Οι εντολές της MATLAB εισάγονται στο παράθυρο εντολών (Command Window)

μετά το σύμβολο προτροπής (prompt) >>.

Οι εντολές αυτές μπορεί να είναι ένας απλός υπολογισμός πράξεων, λύση μίας

εξίσωσης, κλήση μίας συνάρτησης για απεικόνιση γραφικής παράστασης,

υπολογισμός ενός ολοκληρώματος.

Πληκτρολογώντας

>> 3+5

και πατώντας enter θα εμφανιστεί η απάντηση

ans = 8

Η ans είναι μία default μεταβλητή η οποία χρησιμοποιείται για να αποθηκευτεί

το αποτέλεσμα.

Page 8: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Επίσης, μπορούμε να ορίσουμε τις δικές μας μεταβλητές χρησιμοποιώντας

αλφαριθμητικούς χαρακτήρες και το σύμβολο της υπογράμμισης (_) (μέχρι 63

χαρακτήρες). Ο πρώτος χαρακτήρας πρέπει να είναι γράμμα. Το Μatlab κάνει

διάκριση πεζών-κεφαλαίων στα ονόματα των μεταβλητών. Έτσι το a δηλώνει

διαφορετική μεταβλητή από το Α.

Ένας εύκολος τρόπος για να οριστεί μια μεταβλητή είναι με τη βοήθεια μιας

εντολής ανάθεσης. Η μορφή της εντολής ανάθεσης είναι:

όνομα μεταβλητής=παράσταση

Η μεταβλητή βρίσκεται πάντα στα αριστερά και ακολουθείται από το σύμβολο

=, το οποίο είναι ο τελεστής ανάθεσης τιμής (assignment operator) – σε

αντίθεση με τα μαθηματικά, το μονό σύμβολο ισότητας δεν σημαίνει ισότητα.

Page 9: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Μετά το σύμβολο = ακολουθεί μια παράσταση. Αφού υπολογιστεί η

παράσταση, η τιμή της ανατίθεται στη μεταβλητή.

Πχ. >> a=5

a=

5

>>

Το αποτέλεσμα εκτέλεσης της παραπάνω εντολής είναι η αποθήκευση της

τιμής 5 στην μεταβλητή a.

Επειδή το σύμβολο της ισότητας αναπαριστά τον τελεστή ανάθεσης τιμής και

δεν σημαίνει ισότητα, η εντολή είναι ισοδύναμη με τη φράση «η μεταβλητή a

παίρνει την τιμή 5» και ΟΧΙ με τη φράση «η μεταβλητή a ισούται με 5».

Page 10: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Προσοχή! : Το όνομα της μεταβλητής πρέπει να βρίσκεται πάντα στα

αριστερά και η παράσταση στα δεξιά. Αν η σειρά αυτή αντιστραφεί θα

προκληθεί σφάλμα.

Πχ.

>> 5=a

5=a

Error: Incorrect use of '=' operator. To assign a value to a variable, use '='.

To compare values for equality, use '=='.

Αν πληκτρολογήσετε ένα ελληνικό ερωτηματικό στο τέλος μιας εντολής, τότε

το αποτέλεσμα δεν θα εμφανιστεί

Page 11: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Τα κενά διαστήματα σε μια εντολή ή παράσταση δεν επηρεάζουν το αποτέλεσμα, αντίθετα την κάνουν πιο ευανάγνωστη.

Πχ. b = 6 – 4 αντί b=6-4

Αν ο χρήστης πληκτρολογήσει μια παράσταση στο προτρεπτικό σήμα χωρίς να την αναθέσει σε κάποια μεταβλητή, το Matlab χρησιμοποιεί μια προεπιλεγμένη μεταβλητή με το όνομα ans

Πχ. >> 6+3

ans =

9

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

Page 12: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Για να τροποποιηθεί μια εντολή, μπορεί να χρησιμοποιηθεί μια άλλη εντολή

ανάθεσης, η οποία θα αναθέσει στη μεταβλητή την τιμή μιας διαφορετικής

παράστασης.

Πχ. >> a=5

a =

5

>> a=4+3

a =

7

>> a=a+1

a =

8

H τιμή 5 ανατίθεται στη μεταβλητή a

H a τροποποιείται και το αποτέλεσμα της τιμής 4+3 ανατίθεται στη μεταβλητή a

H a τροποποιείται και το αποτέλεσμα της τιμής a+3 ανατίθεται στη μεταβλητή a. Δεδομένου ότι η τελευταία τιμή της μεταβλητής a ήταν 7, το τελικό αποτέλεσμα θα είναι το 8.

Page 13: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Ο καθορισμός της πρώτης ή αρχικής τιμής μιας μεταβλητής ονομάζεται

ανάθεση αρχικής τιμής στη μεταβλητή ή αρχικοποίηση μεταβλητής.

Η αρχικοποίηση μεταβλητών είναι βασικό βήμα σε κάθε πρόγραμμα.

Ερώτηση:

Πώς μπορούμε να αφαιρέσουμε 1 από την τιμή της μεταβλητής a?

Απάντηση: a=a-1;

Αυτή η ενέργεια λέγεται μείωση της μεταβλητής

Page 14: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Μεταβλητές και εντολές ανάθεσης τιμών

Υπάρχουν ορισμένες λέξεις, οι λεγόμενες δεσμευμένες λέξεις ή λέξεις κλειδιά,

οι οποίες ΔΕΝ μπορούν αν χρησιμοποιηθούν ως ονόματα μεταβλητών

Τα ονόματα των ενσωματωμένων συναρτήσεων μπορούν, αλλά δεν πρέπει,

να χρησιμοποιούνται σαν ονόματα μεταβλητών

Οι παρακάτω εντολές σχετίζονται με μεταβλητές:

who: Εμφανίζει στο παράθυρο εντολών τις μεταβλητές που έχουν οριστεί

whos: Εμφανίζει με λεπτομέρειες στο παράθυρο εντολών τις μεταβλητές

που έχουν οριστεί

clear: Καταργεί τις μεταβλητές, οι οποίες παύουν πλέον να υπάρχουν

Page 15: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Τύποι μεταβλητών-Χαρακτήρες και κωδικοποίηση Κάθε μεταβλητή έχει ένα τύπο

Για αριθμούς κινητής υποδιαστολής ή πραγματικούς αριθμούς, δηλ. για αριθμούς με δεκαδικά ψηφία (π.χ. το 5.3) υπάρχουν δύο βασικοί τύποι, οι single και double (διπλής ακρίβειας). Ο τύπος double έχει τη δυνατότητα αποθήκευσης μεγαλύτερων αριθμών σε σχέση με τον single.

Υπάρχουν πολλοί τύποι ακεραίων, όπως οι int8, int16, int32 και int64.Οι αριθμοί στα ονόματα υποδηλώνουν το πλήθος των bit που χρησιμοποιούνται για την αποθήκευση τιμών του συγκεκριμένου τύπου. Πχ. Ο τύπος int8 χρησιμοποιεί 8 bit συνολικά για να αποθηκεύει τον ακέραιο και το πρόσημό του.

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

Μπορείτε να βρείτε το εύρος οποιουδήποτε τύπου μεταβιβάζοντας το όνομα του τύπου ως συμβολοσειρά (δηλ. μέσα σε μονά εισαγωγικά) στις συναρτήσεις intmin και intmax.

Παράδειγμα:

>> intmin('int8')

ans =

-128

>> intmax('int8')

ans =

127

Page 16: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Τύποι μεταβλητών-Χαρακτήρες και κωδικοποίηση

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

Παράδειγμα:

Η συνάρτηση int32 μπορεί να χρησιμοποιηθεί για τη μετατροπή μιας τιμής από τον προεπιλεγμένο τύπο double στον τύπο int32. Η εντολή ανάθεσης

>> val=6+3

θα αποθηκεύσει τον αριθμό 9 στη μεταβλητή val, με τον προεπιλεγμένο τύπο double, ενώ η εντολή

>> val=int32(val);

θα αλλάξει τον τύπο της μεταβλητής σε int32, χωρίς όμως να αλλάξει την τιμή της

Ο τύπος char χρησιμοποιείται για την αποθήκευση είτε μεμονωμένων χαρακτήρων (πχ. ο χαρακτήρας‘x’) είτε συμβολοσειρών (strings) τα οποία είναι ακολουθίες χαρακτήρων (πχ. ‘cat’). Τόσο οι χαρακτήρες όσο και οι συμβολοσειρές περικλείονται από μονά εισαγωγικά.

Page 17: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Τύποι μεταβλητών-Χαρακτήρες και κωδικοποίηση

Για την αποθήκευση τιμών true/false χρησιμοποιείται ο τύπος logical.

Τέλος, μπορείτε να χρησιμοποιήσετε τη συνάρτηση class για να βρείτε τον τύπο μιας μεταβλητής

Παράδειγμα:

>> num=6+3

num =

9

>> class(num)

ans =

'double'

Page 18: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Τύποι μεταβλητών-Χαρακτήρες και κωδικοποίηση Χαρακτήρες

Η επεξεργασία χαρακτήρων δίνει τη δυνατότητα να επιλύονται προβλήματα όπως η κατασκευή

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

μια φυσική γλώσσα σε άλλη (πχ από αγγλικά σε γερμανικά), επεξεργασίας κειμένων σε βιβλία,

εφημερίδες, περιοδικά, κ.α.

ASCII 128 χαρακτήρες

EBCDIC 256 χαρακτήρες

Κάθε χαρακτήρας αποθηκεύεται σε ένα byte και έχει σαν τιμή τον ακέραιο αριθμό που του αντιστοιχεί .

‘a’ 97 ‘A’ 65 ‘0’ 48

‘b’ 98 ‘B’ 66 ‘1’ 49

‘c’ 99 ‘C’ 67 ‘2’ 50

Συμβολοσειρές

Παράδειγμα: “ Δώστε τα δεδομένα” , “x + y”

Επιστημονική μορφή

2*10^4 = 20000

2e4 = 20000

Page 19: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Παραστάσεις μπορούν να δημιουργηθούν με χρήση τιμών, μεταβλητών που

έχουν ήδη οριστεί, τελεστών, ενσωματωμένων συναρτήσεων και παρενθέ-

σεων. Για τους αριθμούς, αυτό μπορεί να περιλαμβάνει τελεστές (π.χ. τον

τελεστή του πολλαπλασιασμού) και συναρτήσεις (π.χ. τριγωνομετρικές

συναρτήσεις)

Π.χ. >> 2*sin(1.4)

ans =

1.9709

Page 20: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Τελεστές

Υπάρχουν δύο είδη τελεστών: Οι μονομελείς (unary), που εφαρμόζονται σε μια μόνο

τιμή ή τελεστέο (operand), και οι διμελείς (binary) που εφαρμόζονται σε δύο τιμές ή

τελεστέους.

Πχ. Το σύμβολο «-» είναι και ο μονομελής τελεστής για την άρνηση και ο διμελής

τελεστής για την αφαίρεση, καθώς και το αρνητικό πρόσημο.

Οι ακόλουθοι τελεστές χρησιμοποιούνται συνήθως με αριθμητικές παραστάσεις

Τελεστής Χρήση+ Πρόσθεση

- Άρνηση, Αφαίρεση

* Πολλαπλασιασμός

/ Διαίρεση (διαιρούμενο διά, π.χ. Το αποτέλεσμα του 10/5 είναι 2)

\ Διαίρεση («Χωράει» σε, π.χ. το αποτέλεσμα του 5\10 είναι 2)

^ Ύψωση σε δύναμη (π.χ. το αποτέλεσμα του 5^2 είναι 25)

Page 21: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Κανόνες Προτεραιότητας τελεστών

( ) Παρενθέσεις

^ Ύψωση σε δύναμη

- Άρνηση

* , / , \ Όλοι οι πολλαπλασιασμοί και οι διαιρέσεις

+ , - Πρόσθεση και Αφαίρεση

Οι πράξεις εκτελούνται από τα αριστερά προς τα δεξιά

Page 22: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Παράδειγμα

Η αριθμητική παράσταση y * y / 2 * z – 1 / x υπολογίζεται ως εξής

(υπογραμμίζονται οι ήδη εκτελεσμένες πράξεις):

a. y * y

b. y * y / 2

c. y * y / 2 * z

d. 1 / x

e. y * y / 2 * z – 1 / x

Page 23: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Αλγεβρική Παράσταση Παράσταση στη Matlabab

a/b

z+(x mod y) z+ mod(x,y)

a+bc+d

(a+b)/(c+d)

a2-4bc a^2-4*b*c

Page 24: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Πράξη Τιμή

mod(2,7) 2

2/7 0.2857

mod(12,3) 0

12/3 4

3\12 4

mod(n,2)�1, αν n περιττός

0, αν n άρτιος

Page 25: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Παράδειγμα

Η αριθμητική παράσταση z – (a + b / 2) + w * y υπολογίζεται ως εξής:

a. b / 2

b. a + b / 2

c. w * y

d. z – (a + b / 2)

e. z – (a + b / 2) + w * y

Page 26: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Παράδειγμα

Να γραφτούν οι εντολές για τον υπολογισμό των δύο πραγματικών ριζών της

δευτεροβάθμιας εξίσωσης :

ax2 + bx + c = 0

Απάντηση

diakrinousa = b ^2 – 4 * a * c;

riza_1 = (-b + sqrt(diakrinousa)) / (2*a);

riza_2 = (-b - sqrt(diakrinousa)) / (2*a);

Page 27: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Ενσωματωμένες Συναρτήσεις και Βοήθεια

Υπάρχουν πολλές ενσωματωμένες συναρτήσεις στο Matlab

help: Εμφάνιση λίστας με θέματα βοήθειας, τα οποία αποτελούν ομάδες

συναφών συναρτήσεων

sin: Ημίτονο

help sin: Περιγραφή της συνάρτησης sin

abs(-4): Υπολογισμός της απόλυτης τιμής του -4

sqrt(4): Υπολογισμός της τετραγωνικής ρίζας του 4

Page 28: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Ενσωματωμένες Συναρτήσεις και Βοήθεια

Το Matlab διαθέτει ενσωματωμένες συναρτήσεις για να επιστρέψει λογαρίθμους

log(x)

log2(x)

log10(x)

Περιλαμβάνει την ενσωματωμένη συνάρτηση exp(n) για να επιστρέψει τη σταθερά en

Υπάρχουν πολλές ενσωματωμένες τριγωνομετρικές συναρτήσεις, όπως:

sin -> Η συνάρτηση ημιτόνου σε ακτίνια (sin(30)= -0.9880, sin(pi/6)=0.5)

asin -> Η αντίστροφη συνάρτηση (τόξου ημιτόνου) σε ακτίνια

sinh -> Συνάρτηση υπερβολικού ημιτόνου

sind -> Συνάρτηση ημιτόνου σε μοίρες (sind(30)=0.5)

asind -> Αντίστροφη συνάρτηση ημιτόνου σε μοίρες

Page 29: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις Για τη μετατροπή πραγματικών αριθμών σε ακέραιους ( όπως και στοιχείων πινάκων ),

μπορούν να χρησιμοποιηθούν οι παρακάτω συναρτήσεις :

π.χ.

>> b = fix(3.4) = 3

>> b = fix(3.9) = 3

>> b = round(3.4) =3

>> b = round(3.9) =4

>> b = ceil(3.4) =4

>> b = ceil(3.9) =4

>> b = floor(3.9) =3

Page 30: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Σταθερές

Οι μεταβλητές χρησιμοποιούνται για την περίπτωση τιμών που ενδέχεται να

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

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

σταθερές (constants), δηλ. τιμές που είναι γνωστές εκ των προτέρων και δεν μπορούν

να αλλάξουν

Παράδειγμα

pi 3.14159…

i −1

j −1

inf Άπειρο ∞

NaN Σημαίνει “not a number”, όπως το αποτέλεσμα της πράξης 0/0

Page 31: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Τυχαίοι αριθμοί

Όταν ένας προγραμματιστής γράφει ένα πρόγραμμα επεξεργασίας δεδομένων τα οποία δεν είναι ακόμα διαθέσιμα, είναι συχνά χρήσιμο να δοκιμάζει πρώτα το πρόγραμμα αναθέτοντας στις μεταβλητές τιμές που είναι τυχαίοι αριθμοί (random numbers)

Ομοιόμορφα κατανεμημένοι τυχαίοι αριθμοί μπορούν να παραχθούν με τη συνάρτηση rand, η κλήση της οποίας παράγει έναν τυχαίο πραγματικό αριθμό στο ανοιχτό διάστημα (0,1), που σημαίνει ότι δεν συμπεριλαμβάνονται οι ακραίες τιμές του διαστήματος.

Παράδειγμα:

>> rand

ans =

0.8147

>> rand

ans =

0.9058

Page 32: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αριθμητικές Παραστάσεις

Τυχαίοι αριθμοί

Η συνάρτηση randi , η απλούστερη κλήση της randi(imax) επιστρέφει έναν τυχαίο αριθμό στο διάστημα [1, imax]

Παράδειγμα:

>>randi(4)

ans =

1

H randi([imin, imax]) επιστρέφει έναν τυχαίο αριθμό στο διάστημα [imin, imax]

Παράδειγμα:

>>randi([3,6])

ans =

5

Page 33: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Σχεσιακές Παραστάσεις

Οι παραστάσεις που είναι εννοιολογικά είτε αληθείς είτε ψευδείς ονομάζονται σχεσιακές

παραστάσεις (relation expressions), μερικές φορές λέγονται και παραστάσεις Boole ή λογικές

παραστάσεις (logical expressions). Οι παραστάσεις αυτές μπορούν αν χρησιμοποιούν τόσο

σχεσιακούς τελεστές, οι οποίοι συσχετίζουν δυο παραστάσεις συμβατών τύπων όσο και

λογικούς τελεστές, οι οποίοι εφαρμόζονται σε τελεστές τύπου logical.

Οι σχεσιακοί τελεστές στο Matlab είναι οι εξής:

Τελεστής Σημασία

> Μεγαλύτερο από

< Μικρότερο από

>= Μεγαλύτερο από ή ίσο με

<= Μικρότερο από ή ίσο με

== Ίσο με

~= Άνισο από (ή διάφορο από)

Page 34: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Σχεσιακές Παραστάσεις

Στο Matlab, όπως και σε πολλές γλώσσες προγραμματισμού, οι έννοιες «αληθές» (true)

και «ψευδές» (false) αναπαρίστανται με τις λογικές (logical) τιμές 0 και 1

Παράδειγμα:

>>3<5

ans =

logical

1

>> 2>9

ans =

logical

0

Page 35: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Λογικοί τελεστές

Οι λογικοί τελεστές είναι οι εξής:

Πίνακας αληθείας για λογικούς τελεστές

Τελεστής Σημασία

|| or (ή)

&& and (και)

~ not (άρνηση)

x y ~x x||y x&&y xor(x,y)

true true false true true false

true false false true false true

false false true false false false

Page 36: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Θα διαπιστώσουμε αργότερα ότι μέσα στην ίδια παράσταση μπορούν να συνυπάρχουν

και αριθμητικές παραστάσεις και λογικές παραστάσεις. Όταν έχουμε πολλές

συνδεδεμένες λογικές παραστάσεις χρησιμοποιούμε παρενθέσεις για να ορίσουμε την

προτεραιότητα με την οποία θα υπολογιστούν.

Παράδειγμα:

a>b && (a==c || a<c)

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

Page 37: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Παράδειγμα

Οι παραστάσεις

a) 0.0 <x < 3.5 b) x <= y <= z c) c < b < a

γράφονται:

a) 0 < x && x < 3.5

b) x <=y && y <= z

c) c < b && b < a

Αν logiki =1;

τότε η τιμή της ~logiki είναι 0

Page 38: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Παράδειγμα:

Οι αριθμοί κάτω από τους τελεστές δείχνουν τη σειρά με την οποία θα εκτελεστούν

οι πράξεις

Παράσταση Τιμή

𝑥𝑥 > 𝑧𝑧1

&&3

𝑦𝑦 > 𝑧𝑧2

1

𝑥𝑥 + 𝑦𝑦/𝑧𝑧 ≤ 3.52 1 3

0

𝑧𝑧 > 𝑥𝑥 || 𝑧𝑧 > 𝑦𝑦1 3 2

0

~logiki 1

~𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙 || 𝑦𝑦 + 𝑧𝑧1 5 2

≥ 𝑥𝑥 − 𝑧𝑧4 3

1

Page 39: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Άσκηση:

Αν οι τιμές των μεταβλητών a,b,c είναι ίσες με 5, 10, 15 αντίστοιχα σημειώστε την τιμή (1

για αληθή τιμή, 0 για ψευδή τιμή) των παρακάτω λογικών παραστάσεων

a==(c-b)

a>b || b>c

a==5 && c==15

a==5 && c>20

Page 40: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Κανόνες Προτεραιότητας τελεστών

Τελεστές Προτεραιότητα

Παρενθέσεις ( ) Υψηλότερη

Ύψωση σε δύναμη ^

↑Μονομελείς: άρνηση (-), not (~)

Πολλαπλασιασμός, Διαίρεση *, /, \

Πρόσθεση, Αφαίρεση +, -

Σχεσιακοί <, <=, >, >=, ==, ~=

and &&

or ||

Ανάθεση = Χαμηλότερη

Κανόνας

Εκτελούνται πρώτα οι αριθμητικές πράξεις και μετά οι λογικές.

Page 41: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σχεσιακές Παραστάσεις

Κατηγόρημα Απλή μορφή

~(a = = b) a ~= b

~(a ~ = b) a = = b

~(a < b) a >= b

~(a <= b) a > b

~(a > b) a <= b

~(a >= b) a < b

~(Λογ.παρ.1 && Λογ.παρ.2) (~Λογ.παρ.1) || (~Λογ.παρ.2)

~(Λογ.παρ.1 || Λογ.παρ.2) (~Λογ.παρ.1) && (~Λογ.παρ.2)

Αν έχουμε κατηγορήματα που περιέχουν άρνηση θα πρέπει να γίνεται προσπάθεια

αποφυγής τους με αντίστοιχη μετατροπή σε απλούστερη μορφή.

Page 42: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αλγόριθμοι

Πριν ξεκινήσει κάποιος να γράψει οποιοδήποτε πρόγραμμα είναι χρήσιμο να περιγράψει

πρώτα τα βήματα που θα απαιτηθούν συνοπτικά

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

προγράμματος

Ο τμηματικός (modular) προγραμματισμός υλοποιείται μέσω της διαίρεσης του προβλήματος

σε διακριτά βήματα και την περαιτέρω ανάλυση των βημάτων μέχρι καθένα από αυτά να γίνει

αρκετά μικρό ώστε να ισοδυναμεί με μια διαχειρίσιμη εργασία. Αυτή η προσέγγιση ονομάζεται

αναλυτική σχεδίαση.

Βήματα για έναν βασικό αλγόριθμο:

Λήψη των δεδομένων εισόδου

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

Εμφάνιση ενός ή περισσοτέρων αποτελεσμάτων

Page 43: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αλγόριθμοι

Παράδειγμα:

Δώστε αλγόριθμο ο οποίος να υπολογίζει και τυπώνει το άθροισμα και τη μέση τιμή τριών

αριθμών

Λύση:

Καταρχήν σχηματίζουμε τον παρακάτω πίνακα δεδομένων

Μεταβλητές δεδομένων Μεταβλητές αποτελεσμάτων

x1: ο πρώτος αριθμός athroisma: Άθροισμα τριών αριθμών

x2: ο δεύτερος αριθμός mesi_timi: Μέση τιμή τριών αριθμών

x3: ο τρίτος αριθμός

Page 44: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αλγόριθμοι

Αλγόριθμος (Πρώτη μορφή)

Βήμα 1: Διάβασε τα δεδομένα (καταχώρηση των δεδομένων σαν τιμές των μεταβλητών x1, x2, x3). Τύπωσε τις μεταβλητές που διαβάστηκαν (έλεγχος δεδομένων).

Βήμα 2: Υπολογισμός του αθροίσματος των τιμών των x1, x2 και x3 και αποθήκευση του αποτελέσματος στη μεταβλητή athroisma

Βήμα 3: Υπολογισμός της μέσης τιμής των τιμών των x1, x2 και x3 και αποθήκευση του αποτελέσματος στη μεταβλητή mesi_timi

Βήμα 4: Εκτύπωση των τιμών των μεταβλητών athroisma και meesi_timi

Ανάλυση βήματος 3

Βήμα 3.1: Διαίρεση του αθροίσματος (που βρίσκεται στην athroisma) με το πλήθος των αριθμών που χρησιμοποιήθηκε στο άθροισμα

Στο γράψιμο του προγράμματος πάντα ενσωματώνονται οι πληροφορίες του πίνακα των δεδομένων.

Page 45: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αλγόριθμοι

Παράδειγμα:

Δώστε αλγόριθμο ο οποίος να υπολογίζει και τυπώνει το εμβαδόν ενός ισοπλέυρου

τριγώνου όταν δίνεται η πλευρά x

Λύση:

Καταρχήν σχηματίζουμε τον παρακάτω πίνακα δεδομένων

Μεταβλητές δεδομένων Μεταβλητές αποτελεσμάτων

x: η πλευρά του τριγώνουΕ : το εμβαδόν του τριγώνου

h: το ύψος του τριγώνου

Page 46: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αλγόριθμοι

Αλγόριθμος (Πρώτη μορφή)

Βήμα 1: Διάβασε τη δεδομένη πλευρά του τριγώνου x και το ύψος του τριγώνου h

Βήμα 2: Υπολόγισε το εμβαδό Ε του τριγώνου

Βήμα 3: Εκτύπωσε τις τιμές των x, h και Ε

Ανάλυση βήματος 3

Βήμα 3.1: Υπολογισμός του Εμβαδού από τον τύπο

Ε = 12

x h

Στο γράψιμο του προγράμματος πάντα ενσωματώνονται οι πληροφορίες του πίνακα των

δεδομένων.

Page 47: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Αλγόριθμοι

Άσκηση:

Για να υπολογιστεί το εμβαδό ενός κύκλου ακολουθούμε την εξής διαδικασία:

Λήψη των δεδομένων εισόδου – ακτίνα

Υπολογισμός του αποτελέσματος – εμβαδόν

Εμφάνιση της εξόδου (αποτέλεσμα)

Να αναλυθεί ο αλγόριθμος σε βήματα

Page 48: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σενάρια του Matlab

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

επίλυσή του, τότε η επίλυση του προβλήματος υλοποιείται σε μια συγκεκριμένη γλώσσα

προγραμματισμού

Ένα πρόγραμμα υπολογιστή είναι μια ακολουθία εντολών (σε μια δεδομένη γλώσσα) με την οποία

εκτελείται μια εργασία

Η εκτέλεση ή το τρέξιμο ενός προγράμματος ουσιαστικά υποχρεώνει τον υπολογιστή να ακολουθήσει

τη συγκεκριμένη σειρά εντολών

Οι γλώσσες υψηλού επιπέδου (high level languages) έχουν εντολές και συναρτήσεις οι οποίες

διατυπώνονται σε μια μορφή που μοιάζει με την αγγλική γλώσσα, όπως «τύπωσε αυτό» ή «αν ισχύει

x<5 κάνε κάτι»

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

(machine language)

Συνεπώς προγράμματα που έχουν γραφτεί σε γλώσσες υψηλού επιπέδου πρέπει να μεταφραστούν

πρώτα σε γλώσσα μηχανής, ώστε να είναι ο υπολογιστής σε θέση να εκτελέσει την ακολουθία εντολών

του προγράμματος

Page 49: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σενάρια του Matlab

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

εκτελέσιμο (executable) αρχείο ονομάζεται μεταγλωττιστής (compiler)

Το αρχικό πρόγραμμα ονομάζεται πηγαίος κώδικας (source code) και το εκτελέσιμο πρόγραμμα που

προκύπτει ονομάζεται αντικειμενικός κώδικας (object code)

Οι μεταγλωττιστές μεταφράζουν τον πηγαίο κώδικα σε αντικειμενικό κώδικα, ο οποίος εκτελείται έπειτα

σε ξεχωριστό βήμα

Σε αντίθεση με τους μεταγλωττιστές, ο διερμηνευτής (interpreter) σαρώνει τον κώδικα γραμμή γραμμή

μεταφράζοντας και εκτελώντας κάθε εντολή στην πορεία

Το Matlab χρησιμοποιεί τα λεγόμενα αρχεία σεναρίων, ή αρχεία Μ (M-files) τα οποία ονομάστηκαν έτσι

επειδή η προέκταση των ονομάτων τους είναι .m

Τα αρχεία σεναρίων δεν μεταγλωττίζονται, αλλά διερμηνεύονται.

Page 50: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σενάρια του Matlab

Παράδειγμα 1:

radius=5;

area=pi*(radius^2)

Απάντηση:

area =

78.5398

Παρατήρηση

Υπενθυμίζουμε ότι όταν στο τέλος της εντολής υπάρχει ελληνικό ερωτηματικό τότε ΔΕΝ

εμφανίζεται το αποτέλεσμα αυτής της εντολής, ενώ όταν ΔΕΝ υπάρχει ελληνικό

ερωτηματικό τότε εμφανίζεται το αποτέλεσμα της εντολής στην οθόνη

Page 51: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος

Το προηγούμενο σενάριο θα είχε πολύ πιο μεγάλη χρησιμότητα αν ήταν πιο γενικό, δηλ.

αν για παράδειγμα η τιμή της ακτίνας θα μπορούσε να διαβάζεται από μια εξωτερική

πηγή αντί να ορίζεται από το ίδιο το σενάριο

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

και ενημερωτικό τρόπο.

Εντολές που μπορούν να πετύχουν τα παραπάνω ονομάζονται εντολές εισόδου/εξόδου

(input/output) ή I/O.

Page 52: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος Εντολή εισόδου: Η συνάρτηση input

Οι εντολές εισόδου διαβάζουν τιμές από την προεπιλεγμένη ή καθιερωμένη συσκευή

εισόδου, η οποία είναι το πληκτρολόγιο στα περισσότερα συστήματα, οπότε η εντολή

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

που εκτελεί το σενάριο.

Η απλούστερη συνάρτηση εισόδου στο Matlab ονομάζεται input. Η συνάρτηση αυτή

χρησιμοποιείται σε μια εντολή ανάθεσης τιμής

Για να κληθεί πρέπει να μεταβιβαστούν σε αυτή

Μια συμβολοσειρά η οποία είναι το προτρεπτικό μήνυμα που θα εμφανίζεται στην οθόνη

Οτιδήποτε πληκτρολογεί ο χρήστης, το οποίο θα αποθηκευτεί στη μεταβλητή που

βρίσκεται στην αριστερή πλευρά της εντολής ανάθεσης

Για αν είναι πιο εύκολη η ανάγνωση του προτρεπτικού μηνύματος είναι χρήσιμο να

υπάρχει μετά το μήνυμα μια άνω και κάτω τελεία ακολουθούμενη από ένα κενό

διάστημα

Page 53: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος Παράδειγμα:

>> rad=input('Πληκτρολογήστε την ακτίνα: ')

Πληκτρολογήστε την ακτίνα: 5 %(Το 5 το πληκτρολογούμε εμείς)

rad =

5

Αν η ζητούμενη είσοδος είναι ένας χαρακτήρας ή μια συμβολοσειρά, πρέπει να

προστεθεί ένα δεύτερο όρισμα στη συνάρτηση input, το ‘s’:

Παράδειγμα:

>> letter=input('Πληκτρολογήστε ένα χαρακτήρα: ', 's')

Πληκτρολογήστε ένα χαρακτήρα: g

letter =

'g'

Page 54: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος

Αν ο χρήστης πληκτρολογήσει μόνο κενά διαστήματα ή στηλοθέτες (tabs) πριν πατήσει

το πλήκτρο enter, αυτά αγνοούνται και στη μεταβλητή αποθηκεύεται μια κενή

συμβολοσειρά:

Παράδειγμα:

>> mychar=input('Πληκτρολογήστε ένα χαρακτήρα: ', 's')

Πληκτρολογήστε ένα χαρακτήρα:

mychar =

0×0 empty char array

Page 55: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος

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

Στο επόμενο παράδειγμα ο χρήστης πατάει το πλήκτρο space 4 φορές προτού πληκτρολογήσει τη λέξη “go”. Η συνάρτηση length επιστρέφει το πλήθος των χαρακτήρων της συμβολοσειράς.

Παράδειγμα:

>> mystr=input('Πληκτρολογήστε μια συμβολοσειρά: ', 's')

Πληκτρολογήστε μια συμβολοσειρά: go

mystr =

' go‘

>> length(mystr)

ans =

6

Page 56: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος

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

συμβολοσειράς αντί να συμπεριλάβει το ‘s’ ως δεύτερο όρισμα της συνάρτησης input

Παράδειγμα:

name=input('Πληκτρολογήστε μια συμβολοσειρά: ')

Πληκτρολογήστε μια συμβολοσειρά: 'Maria'

name =

'Maria'

Page 57: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος Εντολές εξόδου: Οι συναρτήσεις disp και fprintf

Οι εντολές εξόδου εμφανίζουν συμβολοσειρές και/ή αποτελέσματα παραστάσεων και

επιτρέπουν τη μορφοποίηση, δηλαδή την προσαρμογή του τρόπου με τον οποίο αυτά

εμφανίζονται.

Η πιο απλή συνάρτηση εξόδου είναι η disp, η οποία χρησιμοποιείται για να εμφανίζει τα

αποτελέσματα της παράστασης ή συμβολοσειρές χωρίς να αναθέται κάποια τιμή στην

προεπιλεγμένη μεταβλητή ans.

Η disp δεν επιτρέπει την μορφοποίηση.

Παράδειγμα:

>> disp('hello')

Hello

>> disp('2^4')

2^4

Page 58: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος Για να εμφανιστεί μορφοποιημένη έξοδος στην οθόνη πρέπει να χρησιμοποιηθεί η εντολή

fprintf.

Παράδειγμα:

>> fprintf('Η τιμή είναι %d, αναμφίβολα!\n', 4^3)

Η τιμή είναι 64, αναμφίβολα!

Το πρώτο όρισμα που χρησιμοποιείται στη συνάρτηση fprintf είναι μια συμβολοσειρά (που

ονομάζεται συμβολοσειρά μορφοποίησης). Η συμβολοσειρά αυτή περιέχει το κείμενο που

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

που θα τυπωθούν. Στο συγκεκριμένο παράδειγμα το %d είναι μια τέτοια πληροφορία

μορφοποίησης.

Μερικές φορές το %d λέγεται δεσμευτικό θέσης, επειδή καθορίζει τη θέση στην οποία πρέπει

να τυπωθεί η τιμή της παράστασης που ακολουθεί τη συμβολοσειρά. Ο χαρακτήρας στο

δεσμευτικό θέσης ονομάζεται χαρακτήρας μετατροπής και καθορίζει τον τύπο της

εμφανιζόμενης τιμής.

Page 59: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος Τα πιο απλά δεσμευτικά θέσης είναι τα εξής:

Ο χαρακτήρας ‘\n’ στο τέλος της συμβολοσειράς είναι ένας ειδικός χαρακτήρας που ονομάζεται

χαρακτήρας αλλαγής γραμμής (newline character) και ορίζει ότι η έξοδος που ακολουθεί μετά από

αυτόν πρέπει να τυπωθεί στην επόμενη γραμμή.

Ο χαρακτήρας αλλαγής γραμμής είναι ο μόνος χαρακτήρας που μπορεί να χρησιμοποιηθεί και στο

προτρεπτικό μήνυμα μιας εντολής που περιέχει τη συνάρτηση input

Παράδειγμα:

>> x=input('πληκτρολογήστε \n τη συντεταγμένη x: ')

πληκτρολογήστε

τη συντεταγμένη x: 8

x=

8

Page 60: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος Αν χρειάζεται να τυπωθούν δύο τιμές, τότε θα πρέπει να υπάρχουν δύο δεσμευτικά θέσης στη

συμβολοσειρά μορφοποίησης, και δύο παραστάσεις μετά τη συμβολοσειρά. Οι παραστάσεις

συμπληρώνουν τα δεσμευτικά θέσης με τη σειρά.

Παράδειγμα:

>> fprintf('ο ακέραιος είναι το %d και ο χαρακτήρας είναι το %c\n', 33-2, 'x' )

ο ακέραιος είναι το 31 και ο χαρακτήρας είναι το x

Στο δεσμευτικό θέσης μπορεί να συμπεριληφθεί και ένα πλάτος πεδίου, το οποίο καθορίζει πόσοι

χαρακτήρες συνολικά θα τυπωθούν στην έξοδο

Παράδειγμα:

fprintf('ο ακέραιος είναι το %3d και ο δεκαδικός είναι το %6.2f\n', 5,4.9 )

ο ακέραιος είναι το 5 και ο δεκαδικός είναι το 4.90

Το %6.2f σημαίνει ότι το πλάτος πεδίου είναι 6 (συμπεριλαμβανομένης της υποδιαστολής και των δύο

δεκαδικών ψηφίων) και υπάρχουν δύο δεκαδικά ψηφία

Το %3d σημαίνει ότι το πλάτος πεδίου είναι 3 (γι’ αυτό αφήνει 2 κενά πριν το 5)

Αν είχα %-3d σημαίνει πάλι ότι το πλάτος πεδίου είναι 3 αλλά αφήνει τα 2 κενά μετά το 5

Page 61: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Είσοδος και έξοδος

Εκτός από το χαρακτήρα αλλαγής γραμμής υπάρχουν αρκετοί ακόμη ειδικοί χαρακτήρες

που μπορούν να συμπεριληφθούν στη συμβολοσειρά μορφοποίησης

Για να τυπωθεί μια κάθετος χρησιμοποιούνται δύο κάθετοι στη σειρά, ενώ για να

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

Επιπλέον το ‘\t’ είναι ο χαρακτήρας στηλοθέτη (tab character)

Παράδειγμα:

>> fprintf('Δοκιμάστε: στηλοθέτης \t εισαγωγικό '' κάθετος \\ \n')

Δοκιμάστε: στηλοθέτης εισαγωγικό ' κάθετος \

Page 62: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σενάρια με είσοδο και έξοδοcircleIO.m

% Το σενάριο υπολογίζει το εμβαδό ενός κύκλου%Προτρέπει το χρήστη να πληκτρολογήσει την ακτίνα

%Προτροπή του χρήστη για την ακτίνα και υπολογισμός %του εμβαδού με βάση την ακτίνα αυτήfprintf('Σημείωση: Οι μονάδες θα είναι σε ίντσες.\n')radius=input('Παρακαλώ, πληκτρολογήστε την ακτίνα: ');area=pi*(radius^2);

%Εκτύπωση όλων των μεταβλητών σε μορφή πρότασηςfprintf('Για έναν κύκλο με ακτίνα %.2f ίντσες, \n', radius)fprintf('το εμβαδό είναι %.2f τετραγωνικές ίντσες \n', area)

Η εκτέλεση του παραπάνω σεναρίου παράγει την ακόλουθη έξοδο:

Σημείωση: Οι μονάδες θα είναι σε ίντσες.Παρακαλώ, πληκτρολογήστε την ακτίνα: 3.9Για έναν κύκλο με ακτίνα 3.90 ίντσες, το εμβαδό είναι 47.78 τετραγωνικές ίντσες

Παρατήρηση: Δεν εμφανίζεται το αποτέλεσμα της area λόγω του ελληνικού ερωτηματικού στο

τέλος

Page 63: Matlab – Εισαγωγή...>> 3+5 και πατώντας enter θα εμφανιστεί η απάντηση ans = 8 Η ans είναι μία default μεταβλητή η οποία

Σενάρια με είσοδο και έξοδο

triangle.m% Το σενάριο υπολογίζει το εμβαδό ενός τριγώνου%Προτρέπει το χρήστη να πληκτρολογήσει την πλευρά και το ύψος

%υπολογισμός του εμβαδού fprintf(‘Σημείωση: Οι μονάδες θα είναι σε τετραγωνικά εκατοστά \n’)x=input('Παρακαλώ, πληκτρολογήστε την πλευρά: ');h=input('Παρακαλώ, πληκτρολογήστε το ύψος: ');area=(1/2)*x*h;

%Εκτύπωση όλων των μεταβλητών σε μορφή πρότασηςfprintf('το εμβαδό είναι %2.2f τετραγωνικά εκατοστά \n', area)