Οι περισσότεροι κώδικες που αφορούν τους τομείς των επικοινωνιών και της επεξεργασίας σήματος απαιτούν μετάφραση από το 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
8 Δεκεμβρίου 2007 στις 12:07 μ.μ.
Α, ρε lent... μόνο εσύ θα έκανες ένα τέτοιο ποστ στις 9 το πρωί!!!
Guten Tag.
8 Δεκεμβρίου 2007 στις 2:04 μ.μ.
Το έγραψα αυτό το post ώστε σιγά σιγά να κατευθυνθεί το blog σε ένα ποιο συγκεκριμένο και πιο σοβαρό ύφος.
8 Δεκεμβρίου 2007 στις 5:40 μ.μ.
Καλά, καλά! Πέριμενέ εσύ να πάρει σοβαρό ύφος...
Μέχρι τότε... θα έχουμε τελειώσει τη σχολή!
9 Δεκεμβρίου 2007 στις 3:43 μ.μ.
Gi'ayto min xrisimopoihte matlab! Grafte kateytheian se C!
9 Δεκεμβρίου 2007 στις 3:43 μ.μ.
Gi'ayto min xrisimopoihte matlab! Grafte kateytheian se C!
9 Δεκεμβρίου 2007 στις 11:44 μ.μ.
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...)