Εισαγωγή στο MATLAB Προγραμματισμός σε MATLAB

m-αρχεία

Πολύ συχνά χρειάζεται να χειριστούμε σύνθετες και μακροσκελείς εντολές αλλά και να χτίσουμε σταδιακά πάνω σε αυτές μια πιο περίπλοκη ακολουθία προτάσεων. Αντί να εκτελούμε κάθε εντολή στο παράθυρο εντολών μπορούμε να δημιουργήσουμε αρχεία τα οποία να τα καλούμε από το MATLAB. Τέτοια αρχεία ονομάζονται m-αρχεία διότι το όνομα τους έχει την κατάληξη .m πράγμα που απαιτείται προκειμένου το MATLAB να μπορεί να τα αναγνωρίσει. Τέτοια αρχεία μπορούν να δημιουργηθούν από οποιοδήποτε κειμενογράφο ή από το μενού του MATLAB (File → New →....).

Υπάρχουν δύο τύποι τέτοιων αρχείων. Τα script αρχεία και τα function αρχεία.

  • Τα script αρχεία περιέχουν μία ακολουθία από συνήθεις εντολές του MATLAB οι οποίες εκτελούνται σειριακά μόλις δώσουμε το όνομα του αρχείου στο παράθυρο εντολών.
    Για παράδειγμα ας υποθέσουμε ότι έχουμε το αρχείο FreeFall.m τα περιεχόμενα του οποίου είναι τα εξής:
    g=10;
    t=0:0.1:1;
    h=(1/2)*g*t.^2
    Δίνοντας την εντολή FreeFall έχουμε το αποτέλεσμα για το διάνυσμα h:
    >> FreeFall
    h =
      Columns 1 through 10
      0 0.0500 0.2000 0.4500 0.8000 1.2500 1.8000 2.4500 3.2000 4.0500
      Column 11
      5.0000
  • Τα function αρχεία δεν είναι παρά εντολές τις οποίες ορίζει ο ίδιος ο χρήστης.
    Για παράδειγμα ας υποθέσουμε ότι θέλουμε να δημιουργήσαμε μία εντολή με όνομα ForceGrav η οποία θα υπολογίζει την βαρυτική δύναμη μεταξύ δύο σημειακών μαζών m1 και m2 οι οποίες βρίσκονται σε απόσταση r. Δεδομένου ότι η σχέση που δίνει την βαρυτική δύναμη είναι F=G(m1*m2)/r2 το αρχείο ForceGrav.m θα έχει την εξής μορφή:

    Source 1

    Αν θέλουμε να υπολογίσουμε την δύναμη της βαρύτητας μεταξύ ηλεκτρονίου και πρωτονίου στο άτομο του υδρογόνου δεν έχουμε παρά να δώσουμε την εντολή:
    >> [F]=ForceGrav(1.7*10^(-27),9.1*10^(-31),5.3*10^(-11))
    F =
      3.6899e-47

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

    • τη λέξη function
    • το αποτέλεσμα (ή τα αποτελέσματα) της συνάρτησης σε αγκύλες (η μεταβλητή F στο παραδειγμά μας
    • το σύμβολο της ισότητας
    • το όνομα της συνάρτησης το οποίο οφείλει να είναι το ίδιο με το όνομα του αρχείου (χωρίς την κατάληξη .m)
    • τα ορίσματα της συνάρτησης σε παρενθέσεις χωρισμένα μεταξύ τους με “,” (στην περίπτωση του παραδείγματος οι μεταβλητές m1,m2,r
  • Κάθε πρόταση που ξεκινάει με “ % ” είναι σχόλιο και αγνοείται από το MATLAB. Επιπλέον η πρώτη σειρά σχολίων μετά την επικεφαλίδα μπορεί να χρησιμοποιηθεί σαν βοήθημα για την δεδομένη συνάρτηση. Για παράδειγμα:

    >> help ForceGrav
      function [F] = ForceGrav(m1,m2,r) calculates gravitational
      force between point masses m1 and m2 placed at distance r