asPeirHNh

v 2.0

Archives

Blog tools

SYNC BLOGS page counter

Οι περισσότεροι κώδικες που αφορούν τους τομείς των επικοινωνιών και της επεξεργασίας σήματος απαιτούν μετάφραση από το Matlab (Μ-file ή Simulink model) σε έναν ισοδύναμο κώδικα στη γλώσσα C. Kατά την μετάφραση αυτή υπαρχούν σημαντικές διαφορές μεταξύ του Matlab και της C.

-Πρώτον το Matlab δεν μπορεί να αναγνωρίσει τον τύπο (type) , μορφή (shape) , τη διάσταση (dimension) ή ακόμη και την ύπαρξη μιας μεταβλητής (variable) ή μιας συνάρτησης (function) αν δε ξεκινήσει η εκτέλεση του προγράμματος.

-Στο Matlab η ένδειξη μιας σειράς από στοιχεία (array elements) ξεκινάει με 1 ενώ στη C με 0.

-To Matlab χρησιμοποιεί στήλες ενώ η C σειρές. Άρα το Matlab επεξεργάζεται τα δεδομένα σαν στοιχεία στήλης , ενώ η C σαν στοιχεία σειράς.

-Το Matlab είναι δομημένο πάνω σε μια διανυσματική απεικόνιση (vector based representation). Το γεγονός αυτό κάνει τη μετάφραση ενός κώδικα Matlab αρκετά ενδιαφέρουσα.Ειδικότερα:

1)Θα πρέπει το κάθε διάνυσμα να αντικατασταθεί με μια σύνταξη βρόχου (loop).

2)Τελεστές (operators) όπως '*' του Matlab εκτελούν διαφορετικές λειτουργίες ανάλογα με το τύπο των μεταβλητών που επεξεργάζονται όταν εκτελούνται στην C.

3)Το Matlab περιέχει πολύ βασικές λειτουργίες πινάκων όπως για παράδειγμα την αλληλουχία στοιχείων (concatenation) "[]" και μια στήλη (column) "x(:)" , οι οποίες είναι πολύ δύσκολο να μεταφραστούν στη C.

-Το Matlab υποστηρίζει τον πολυμορφισμό (polymorphism) ,ενώ η C όχι. Συγκεκριμένα μπορεί κάποιος να γράψει μια συνάρτηση (function) στο Matlab, η οποία επεξεργάζεται διαφορετικού τύπου παραμέτρους (parameters). Αντίθετα η C έχει συγκεκριμένου τύπου παραμέτρους , οι οποίες δεν αλλάζουν.

-Eπίσης το Matlab υποστηρίζει εύκολα την επέκταση του μεγέθους ενός πίνακα, ενώ η θα C απαιτεί μνήμη στον υπολογιστή.

-Ένα ακόμα πολύ μεγάλο πλεονέκτημα του Matlab είναι οι βιβλιοθήκες (libraries) του, οι οποίες περιέχουν έτοιμες συναρτήσεις (functions). Σε αντίθεση στη C δεν υπάρχει αυτή η δυνατότητα, οπότε θα πρέπει να δημιουργηθεί καινούργιος κώδικας (code).

-Tέλος μια ακόμη σημαντική διαφορά είναι ότι στο Matlab μια μεταβλητή μπορεί να χρησιμοποιηθεί μέσα στο πρόγραμμα με διαφορετικούς τύπους μεταβλητής. Από την άλλη στη C μπορεί να χρησιμοποιηθεί μόνο για έναν συγκεκριμένο τύπο μεταβλητής.



Πηγή: http://www.dspdesignline.com

6 comments

  1. greek tv  

    Α, ρε lent... μόνο εσύ θα έκανες ένα τέτοιο ποστ στις 9 το πρωί!!!

    Guten Tag.

  2. same_old_story  

    Το έγραψα αυτό το post ώστε σιγά σιγά να κατευθυνθεί το blog σε ένα ποιο συγκεκριμένο και πιο σοβαρό ύφος.

  3. greek tv  

    Καλά, καλά! Πέριμενέ εσύ να πάρει σοβαρό ύφος...

    Μέχρι τότε... θα έχουμε τελειώσει τη σχολή!

  4. espeRanGa  

    Gi'ayto min xrisimopoihte matlab! Grafte kateytheian se C!

  5. espeRanGa  

    Gi'ayto min xrisimopoihte matlab! Grafte kateytheian se C!

  6. same_old_story  

    To Matlab trexei se C kai oti kaneis sto periballon toy metafrazetai se C mexri kai se Assembly.
    Profanws an ksereis kalh C einai pio aksiopisto to programma pou ftiaxneis.Alla oso paei to Matlab veltiwnetai kai exei perissoteres leitoyrgies.Mexri kai VHDL kwdika mporei na sou vgalei.
    Alla to megalytero pleonekthma toy Matlab einai oti mporeis na kaneis poly eykola to modelling enws systhmatos(communications,signal processing,mechanics ktl...)

Δημοσίευση σχολίου

Recent Posts

Recent Comments

Listen to radio stations...