Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στον επιστημονικό προγραμματισμό 1 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo 1
Εισαγωγή στo MatLab Τί είναι το MatLab? - Wikipedia MATLAB (matrix laboratory) is a numerical computing environment and fourth-generation programming language. - YouTube IC engine MATLAB animation.avi.mp4 Bouncing ball animation in MatLab 2010b.mp4 MATLAB to FlightGear.mp4 2
Biomechanics Cell Simulation (systems biology) Gait Analysis CFD Image Pr. Robotics GUI 3
- Mathworks Εισαγωγή στo MatLab 4
Εισαγωγή στo MatLab Τί είναι το MatLab? - Το MatLab είναι μια 4 ου επιπέδου γλώσσα προγραμματισμού - Δεν κανει περισσοτερα πράγματα άπο την C ή την Fortran Τα κάνει ευκολότερα 5
Εισαγωγή στo MatLab Εύρεση max διδιάστατου πίνακα Σε C Σε Matlab Max(A) 6
Εισαγωγή στo MatLab Επίλυση μη-γραμμικης αλγεβρικής εξίσωσης Σε C Σε Matlab Fsolve(f) 7
Εισαγωγή στo MatLab Ταξινόμηση πίνακα Σε C Σε Matlab Sort(A) 8
Εισαγωγή στo MatLab To MatLab διευκολύνει την συγγραφή προγραμμάτων παρέχοντας στον χρήστη πλήθος έτοιμων συναρτήσεων γενικής χρήσης 9
CloudFront Εισαγωγή / Έναρξη cloudfront Διαχείριση Αρχείων cloudfront.central.ntua.gr Μεταφορά αρχείων από και προς τον τοπικό Η/Υ Linux GNOME Desktop Δημιουργία Folder MatLab στο DeskTop Kill/close programs. 10
Εισαγωγή στo MatLab Γλώσσα «υψηλού προγραμματισμού» Γραφικό Περιβάλλον MatLab Help Menu / Function Browser Numbers (single/double, int8, scientific) Shortcuts commands ( Tab : complete command, previous command) Matrix (most basic MATLAB data structure) Vector Indexing Examples of matrices Arithmetic Operators + - * / \ ^ ' applied in in numbers and matrices M file 11
Γραφικό Περιβάλλον 12
Αριθμοί >> A=100 A = 100 >> whos Name Size Bytes Class Attributes A 1x1 8 double Όλοι οι αριθμοί είναι πίνακες με double precision! int a; double b; float c; >> http://www.mathworks.com/help/techdoc/matlab_prog/f2-12135.html#f2-101310 13
Data Classes http://www.mathworks.com/help/techdoc/matlab_prog/f2-47534.html
Numeric Classes >> A=100 >> A=1e2 >> B=int8(10) >> whos >> B=10 >> whos >> B=int8(100) >> B=int8(200) ΛΑΘΟΣ? >> B=int8(200) >> B=uint8(200) >> class(b) >> e = 1-3*(4/3-1) >> e = 2.2204e-016 http://www.mathworks.com/help/techdoc/matlab_prog/f2-12135.html 15
Numeric Classes >> whos Α Έλεγχος αριθμητικού στοιχείου >> c=isa(a, double ) >> class(c) Τι είναι το c? http://www.mathworks.com/help/techdoc/matlab_prog/f2-12135.html 16
Μεταβλητές Στο περιβάλλον της MATLAB τα ονόματα των μεταβλητών κάνουν διάκριση ανάμεσα στα πεζά και τα κεφαλαία Το όνομα κάθε μεταβλητής μπορεί να έχει μέχρι 63 χαρακτήρες >> Α=100 >> a=101 >> whos >> 1Α=100??? 1A Error: Unexpected MATLAB expression >> Αrith=10 >> ΑrIth=20 >> whos >> Metavl_1=1 >> Metavl_2=3 >> s=2 %grafo oti thelo Comment 17
Χαρακτήρες Κάθε χαρακτήρας αντιστοιχεί σε έναν αριθμό >> Α = a >> A = [ H, e, l, l, o ] >> A = [ Hello ] >> >> whos A char >> str1= Hello >> str2= Word >> str3=[str1,' ',str2] >> b= 0abc >> int8(b) ans = 48 97 98 99 String to ASCII >> S = char(48) S = 0 >> S = char([97 98 99]) S = abc ASCII to String http://www.mathworks.com/help/techdoc/ref/strings.html 18
Tips. >> % Comment line, edo grafo sxolia >> A =5; % Den grafete h apantisi >> A =5+3 % Sinexizo na grafo stin epomeni grammi +2 >> A =5, B = myname ; C=6, D = A+C % Polles entoles se mia grammi 19
Πίνακες vector >> x = [1 2 3 4.5] Matrix >> x = [1 2 3 4; 5 6 7 8; 9 10 11 12] >> x(1) =? >> x(2) =? >> x = [1:4 ; 5:8; 9:12] Σε τι διαφέρει από x = [1:4, 5:8, 9:12]? >> x = [1:0.1:2] >> x = [2:-0.1:1] 20
Indexing >> x = [1:4 ; 5:8; 9:12] >> x(1,2) =? >> x(1,5) =? >> x(1,1:2) =? >> x(1,:) =? 21
ΚΑΝΟΝΕΣ ΓΙΑ ΤΙΣ ΑΣΚΗΣΕΙΣ 1. Όλες οι ασκήσεις είναι προαιρετικές 2. Με σωστές απαντήσεις σε όλες τις ασκήσεις παίρνετε +1 βαθμό στις τελικές εξετάσεις του εξαμήνου (όχι τις επαναληπτικές του Σεπτεμβρίου) 3. Όλες οι απαντήσεις είναι ηλεκτρονικά στην διεύθυνση KAI ΜΟΝΟ HL.YPOL@gmail.com 4. Ο τίτλος του e-mail είναι ΑΥΣΤΗΡΑ me latinikous xaraktires kai format: ASKHSH01-GROUP1-ALEXOPOULOS-02100000-05.12.2010 ASKHSH## - GROUP - ΕΠΩΝΥΜΟ - Αρ.Μητρώου - deadline 5. Δεν θα απαντάω σε αυτό το e-mail παρά μόνο με αυτόματο σύστημα 6. Το deadline είναι αυστηρό ακόμα και για καθυστέρηση ενός λεπτού. Από την στιγμή που η ημέρα παραλαβής είναι μετά το deadline που φαίνεται στον τίτλο, η άσκηση ακυρώνετε. Άρα deadline: 11:59pm 7. H ημερομηνία παράδοσης είναι σε μία βδομάδα 22
ΑΣΚΗΣΗ 1 η : GROUP1(A-Λ): Δευτέρα 05.12.2010, 11:59μμ ΑΣΚΗΣΗ 1 η : GROUP2(M-Ω): Πέμπτη 08.12.2010, 11:59μμ 1. Δημιουργήστε ένα πίνακα με 2 γραμμές και 4 στήλες και εισάγετε τις τιμές 100-200 1000 40000 0.1 200.9-0.5-200.9 2. Χρησιμοποιώντας κωδικοποίηση με: a) 8bits χωρίς πρόσημο b) 8bits με πρόσημο c) 16bits με πρόσημο υπολογίστε πως το MATLAB καταγράφει τους παραπάνω αριθμούς και σχολιάστε Oι απαντήσεις σε e-mail με τίτλο (latinikous charaktires): ASKHSH01-GROUP1-ΤΟΕΠΟΝΥΜΟΜΟΥ-0210????-05.12.2010 ASKHSH01-GROUP2-ΤΟΕΠΟΝΥΜΟΜΟΥ-0210????-08.12.2010 23
The big project! Ένα υπερβολικά δύσκολο θέμα: +3 για σωστή επίλυση του αλγοριθμικού μέρους +3 για το τελικό πρόγραμμα (GUI) Προφορική εξέταση στο θέμα Παρουσίαση σε powerpoint στην τάξη στο τελευταίο μάθημα (10 λεπτά ίσως προαιρετικό) 24
The big project! Σύστημα αυτόματης καταμέτρησης σφαιριδίων ΜΕΤΡΗΣΕ! Live Image from USB camera Αριθμός σφαιριδίων: 458 Παράμετροι: 25