Βασικές Συναρτήσεις Πινάκων Εντολές και Υπολογισμοί Πινάκων Νικ. Α. Τσολίγκας Χρήστος Μανασής
Βασικές Εντολές MatLab Αριθμητικές πράξεις (με σειρά προτεραιότητας): () ^ *, / +, -
Συναρτήσεις
Εντολές διαχείρισης χώρου εργασίας:
Είσοδος και έξοδος δεδομένων:
Ειδικές σταθερές και μεταβλητές:
Διανύσματα & Πίνακες Στοιχειώδεις πίνακες: Z = X\Y που είναι ισοδύναμο με Z = inv(X)*Y Z = X/Y που είναι ισοδύναμο με Z = X*inv(Y). Διανύσματα και πίνακας με βήμα: u = [u1: b: ulast] όπου u1 το πρώτο στοιχείο, b το βήμα και ulast το τελευταίο στοιχείο
Συναρτήσεις για διανύσματα και πίνακες: Συναρτήσεις:
ΔΙΑΧΕΙΡΙΣΗ ΠΙΝΑΚΩΝ y=x’ y = 1 2 5 >>B=[3 5;9 7] B = 3 5 9 7 Ορισμός πίνακα >>B=[3 5;9 7] B = 3 5 9 7 >>x = [1 2 5 1] x = Ορισμός διανύσματος 1 2 5 1 Ανάστροφος y=x’ y = 1 2 5
ΔΙΑΧΕΙΡΙΣΗ ΠΙΝΑΚΩΝ zeros(M,N) , MxN πίνακας με μηδενικά Δημιουργία πινάκων από συναρτήσεις zeros(M,N) , MxN πίνακας με μηδενικά >>M = zeros(3,2) M = Αριθμός στηλών Αριθμός γραμμών ones(M,N) MxN πίνακας με 1 >>M = ones(3,2) M = 1 rand(M,N) MxN πίνακας από ομοιόμορφα κατανεμημένους τυχαίους αριθμούς στο διάστημα (0,1) >>M = rand(3,2) M = 0.8147 0.9058 0.1270 0.9134 0.6324 0.0975
ΠΑΡΑΔΕΙΓΜΑΤΑ r = [ 1 6 9 2 ] διάνυσμα γραμμής c = [ 3 ; 4 ; 5 ; 7 ] διάνυσμα στήλης d = [ 4 5 6 ; 7 8 9 ; 5 3 2; 1 2 3 ] πίνακας 4x3 A= rand(1,5) 1 γραμμή με 5 στήλες που περιέχουν τυχαίους αριθμούς.
ΔΙΑΧΕΙΡΙΣΗ ΠΙΝΑΚΩΝ A=[ astart : aend] A=[astart : b : aend ] Ορισμός πινάκων με βήμα A=[astart : b : aend ] Αν το βήμα b είναι ίσο με τη μονάδα, τότε αυτό μπορεί να παραλειφθεί A=[ astart : aend] Κατασκευή του u = (–1, 0, 1, 2, 3, 4, 5,6,7) : >>u=[-1:1:7] u = -1 >>u=[-1:7] 1 2 3 4 5 6 7 u = -1 0 1 2 3 4 5 6 7
Κατασκευή διανυσμάτων x = [ 0.1 0.5 6.3 3.2 5.6 ]; x = 0 : 0.1 : 5.0; linspace x = linspace( 1.0 , 20.0 , 10 );
ΔΙΑΧΕΙΡΙΣΗ ΠΙΝΑΚΩΝ κατασκευή πινάκων Η ίδια λογική μπορεί να χρησιμοποιηθεί για την κατασκευή πινάκων A=[1:10;10:-1:1] A = 1 2 3 4 5 6 7 8 9 10 Μπορούμε να χρησιμοποιήσουμε και την εντολή linspace a=linspace(0,12,5) % Ξεκινώντας από το 0 , μέχρι το 12, 5 τιμές a = 0 3 6 9 12
Κατασκευή πινάκων χρήση ενσωματωμένων συναρτήσεων N = 10 ; B = ones(N); N x N πίνακας του οποία όλα τα στοιχεία είναι 1 ID = eye(N); N x N ταυτοτικός (μοναδιαίος) πίνακας E = rand(4,6); 4 x 6 πίνακας τυχαίων αριθμών μεταξύ 0.0 και 1
ΔΙΑΧΕΙΡΙΣΗ ΠΙΝΑΚΩΝ Εξαγωγή στοιχείου Εξαγωγή γραμμής Εξαγωγή στοιχείου >>x = [1 2 3; x = 5 1 4; 3 2 -1] 1 5 3 2 1 3 4 -1 >> y=x(2,3) y = 4 Εξαγωγή γραμμής >> y=x(3,:) y = 3 2 -1 Εξαγωγή στήλης >> y=x(:,2) y = 2 1
ΔΙΑΧΕΙΡΙΣΗ ΠΙΝΑΚΩΝ f=[[e e]; [a b a]]; d=[a;b]; e=[d c]; a=[1 2]; Συνένωση πινάκων με το σύμβολο [ ] a=[1 2]; f=[[e e]; [a b a]]; d=[a;b]; b=[3 4]; c=[5;6]; e=[d c]; x=[zeros(1,2) ones(1,4)] Indexing a=[1 2 3]; x = 0 0 1 1 1 1 Επιλογή υπο-πίνακα με το σύμβολο ( ) y = x(2) y = 0 a(1) a(2) a(3) y = x(2:4) y = 0 1 1 1 x = 0 y=x(2) 1 1 1 1 y=x(2:4)
ΟΙ ΕΝΤΟΛΕΣ LENGTH,SIZE H εντολή size Η εντολή length a=zeros(2,4) [m,n]=size(a) m = n = 2 4 Η εντολή length b=zeros(1,5); length(b) ans = 5 length(a) %max(size(a)) ans = 4
Διευθυνσιοδότηση πινάκων Άμεση x(3) αναφορά στο 3ο στοιχείο του x x( [6 1 2] ) 6ο , 1ο and 2ο στοιχείο του x array( first:last) ή array(first:increment:last) x(1:5) στοιχεία 1, 2, 3, 4 και 5 του x x(4:-1:1) στοιχεία 4 , 3 , 2 και 1 του x
Διευθυνσιοδότηση πινάκων Διευθυνσιοδότηση μέσω πίνακα d = [ 11.1 12.2 13.3 14.4 15.5 16.6 ]; e = [ 4 2 6] ; f = d(e) έχει ως αποτέλεσμα f =[ 14.4 12.2 16.6 ]
Η εντολή Find Η Find βρίσκει τους δείκτες των στοιχείων ενός διανύσματος που είναι διάφορα του μηδενός. Σε συνδυασμό με σχεσιακούς τελεστές επιστρέφει τους δείκτες των στοιχείων του διανύσματος που ικανοποιούν τη συνθήκη. παράδειγμα: ind = find( A > pi )
Χρήση της find Αν a = [ 1.3 5.6 7.8 2.0 4.0 3.8 2.5] η k = find(a < 3.0) θα έχει ως αποτέλεσμα k=[1 4 7] και το c=a(k) θα είναι ένα διάνυσμα που θα αποτελείται από το 1ο, 4ο και 7ο στοιχείο του a, με τη σειρά που αναφέρονται. 39
Υποπίνακες Αν A είναι ένας 4 x 6 πίνακας: Β( 1:3 , : ) ένας 3 x 6 πίνακας, αποτελούμενος από τις 3 πρώτες γραμμές του A Β( 4:-1:1 , : ) ίδιες διαστάσεις με τον Α, αλλά με τις σειρες του διατεταγμένες σε αντίστροφη σειρά
Πράξεις με πίνακες εάν r είναι (1 x n) (διάνυσμα γραμμής) και c είναι (n x 1) (διάνυσμα στήλης). r*c --------> εσωτερικό γινόμενο – αριθμός c*r --------> (n x n) πίνακας Σταθερά *πίνακας πίνακας ιδίων διαστάσεων ή -------> του οποίου κάθε στοιχείο πίνακας*σταθερά είναι πολλαπλασιασμένο με την εν λόγω σταθερά
Πράξεις με πίνακες – πρόσθεση / αφαίρεση Τελεστές: + , - Οι πίνακες πρέπει να έχουν τις ίδιες διαστάσεις
Πράξεις με πίνακες – πολλαπλασιασμός Τελεστής: * Ο αριθμός στηλών του πολλαπλασιαστέου πρέπει να είναι ίσος με τον αριθμό γραμμών του πολλαπλασιαστή. Το αποτέλεσμα έχει τον αριθμό γραμμών του πολλαπλασιαστέου και τον αριθμό στηλών του πολλαπλασιαστή. Α[mxn] x B[kxl] = C[mxl] |__=__|
Πράξεις με πίνακες - διαίρεση inv( ) συνάρτηση αντιστροφής πίνακα αν ο A είναι τετραγωνικός πίνακας, A\B είναι inv(A)*B A/B είναι A*inv(B) Έτσι: Η λύση του A*X = B είναι A\B Η λύση του X*A = B είναι B/A
Επίλυση γραμμικών συστημάτων 2x + 3y + z = 17 x + 4y +2z = 22 x + y +5z = 25 A = [ 2 3 1 ; 1 4 2 ; 1 1 5 ] ; b = [17 ; 22 ; 25] ; x = A\b ή C=inv(A) x = C*b will also work.
Γραφικά Βασικές εντολές Γραφικών
Γραφήματα
ΠΗΓΕΣ http://www.math.toronto.edu/mpugh/primer.pdf http://www.math.toronto.edu/mpugh/primer.pdf http://www.mathworks.com/ http://courses.washington.edu/css457/matlab/learning_matlab. pdf http://www- h.eng.cam.ac.uk/help/documentation/docsource/matlab1.pdf http://ocw.mit.edu/courses/electrical-engineering-and- computer-science/6-094-introduction-to-matlab-january-iap- 2010/ http://software-carpentry.org/4_0/matlab/