Το GNU Octave είναι ένα έργο λογισμικού γραμμής εντολών ανοιχτού κώδικα και ελεύθερης κατανομής που αποσκοπεί στην παροχή μιας ισχυρής, εύχρηστης και επεκτάσιμης γλώσσας υψηλού επιπέδου που μπορεί να χρησιμοποιηθεί για τον χειρισμό αριθμητικών υπολογισμών .
Μπορεί να χρησιμοποιηθεί για την επίλυση αριθμητικών γραμμικών και μη γραμμικών προβλημάτων
Το λογισμικό μπορεί να χρησιμοποιηθεί για να λύσει αριθμητικά τόσο γραμμικά όσο και μη γραμμικά προβλήματα, καθώς και να εκτελέσει διάφορα αριθμητικά πειράματα. Είναι συμβατό με το Matlab, ένα πολυδύναμο υπολογιστικό περιβάλλον πολλαπλών υποδειγμάτων και μπορεί να χρησιμοποιηθεί ως γλώσσα προσανατολισμένη σε παρτίδες.
Επιπλέον, το GNU Octave προσφέρει διάφορα βοηθητικά προγράμματα που σας επιτρέπουν να λύσετε κοινά αριθμητικά προβλήματα αλγεβρικών γραμμών, να χειριστείτε πολυώνυμα, να ενσωματώσετε τις συνήθεις λειτουργίες, να ανακαλύψετε τις ρίζες μη γραμμικών εξισώσεων, καθώς και να ενσωματώσετε τις συνήθεις διαφορικές αλγεβρικές και διαφορικές εξισώσεις. / p>
Μπορείτε να χρησιμοποιήσετε δυναμικά φορτωμένες λειτουργικές μονάδες ή λειτουργίες που καθορίζονται από το χρήστη για να επεκτείνετε το GNU Octave. Αυτά μπορούν να γραφτούν σε γλώσσα προγραμματισμού του Octave & rsquo; ή σε C, C ++, Fortran, κλπ.
Ξεκινώντας με το GNU Octave
Δύο μέθοδοι είναι διαθέσιμες για την εγκατάσταση του GNU Octave σε ένα λειτουργικό σύστημα GNU / Linux. Το πρώτο είναι το πιο εύκολο και περιλαμβάνει την αναζήτηση "οκτάβας". πακέτο στην εφαρμογή του Λογισμικού (π.χ. Synaptic Package Manager) της διανομής σας.
Η δεύτερη μέθοδος θα σας βοηθήσει να εγκαταστήσετε την πιο πρόσφατη έκδοση του προϊόντος, αλλά περιλαμβάνει εκτέλεση εντολών σε εξομοιωτή τερματικού. Αν δεν είστε έτοιμοι να κατεβάσετε το τελευταίο πακέτο πηγαίου κώδικα από το Softoware ή από την επίσημη αρχική σελίδα του project (δείτε το σύνδεσμο στο τέλος του άρθρου), αποθηκεύστε το στον υπολογιστή σας και αποσυσκευάστε το.
Ανοίξτε μια εφαρμογή εξομοιωτή τερματικού, εκτελέστε το & lsquo; cd & rsquo; (cd /home/softoware/octave-3.8.2), εκτελέστε το & lsquo; ./ configure & amp; & amp; make & rsquo; εντολή για τη διαμόρφωση και την κατάρτιση του προγράμματος και, στη συνέχεια, εκτελέστε το & sudo make install & rsquo; εντολή για να την εγκαταστήσετε. Χρησιμοποιήστε το από τη διεπαφή γραμμής εντολών εκτελώντας το & lsquo; octave & rsquo; εντολή.
Κάτω από την κουκούλα
Κάνοντας μια ματιά κάτω από την κουκούλα του προγράμματος GNU Octave, μπορούμε να παρατηρήσουμε ότι είναι γραμμένο εξ ολοκλήρου στη γλώσσα προγραμματισμού C ++. Το εγκαταστήσαμε σε πολλές διανομές του GNU / Linux, συμπεριλαμβανομένων των Arch Linux και Ubuntu χρησιμοποιώντας τις οδηγίες που παρέχονται στην παραπάνω ενότητα. Το λογισμικό είναι συμβατό με πλατφόρμες υπολογιστών 32 bit και 64 bit.
Τι νέο υπάρχει σε αυτή την έκδοση:
- από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά έκδοσης Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά κυκλοφορίας Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση 4.2.0:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά κυκλοφορίας Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση 4.0.3:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά κυκλοφορίας Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση 4.0.1:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά κυκλοφορίας Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση 4.0.0:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά κυκλοφορίας Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση 3.8.2:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για τη σειρά κυκλοφορίας Octave 3.8.x είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
Τι νέο υπάρχει στην έκδοση 3.8.0:
- Ένα από τα μεγαλύτερα νέα χαρακτηριστικά για το Octave 3.8 είναι ένα γραφικό περιβάλλον εργασίας χρήστη. Είναι το μόνο πράγμα που οι χρήστες έχουν ζητήσει συχνότερα τα τελευταία χρόνια και τώρα είναι σχεδόν έτοιμο. Αλλά επειδή δεν είναι τόσο γυαλισμένο όσο θα θέλαμε, αποφασίσαμε να περιμένουμε μέχρι τη σειρά έκδοσης 4.0.x πριν να κάνουμε το GUI την προεπιλεγμένη διεπαφή (μέχρι τότε, μπορείτε να χρησιμοποιήσετε την επιλογή -force-gui για να ξεκινήσετε το GUI ).
- Δεδομένης της χρονικής διάρκειας και του αριθμού των διορθώσεων σφαλμάτων και των βελτιώσεων από την τελευταία μεγάλη κυκλοφορία Octave, αποφασίσαμε επίσης να μην καθυστερήσουμε την απελευθέρωση όλων αυτών των νέων βελτιώσεων για να τελειοποιήσουμε το GUI. Έτσι απολαύστε την έκδοση 3.8 του Octave και την προεπισκόπηση του νέου GUI. Πιστεύουμε ότι λειτουργεί αρκετά καλά, αλλά γνωρίζουμε επίσης ότι υπάρχουν κάποιες προφανείς τραχιά σημεία και πολλά πράγματα που θα μπορούσαν να βελτιωθούν.
Τι νέο υπάρχει στην έκδοση 3.4.0:
- Οι βιβλιοθήκες BLAS και LAPACK απαιτούνται τώρα για την κατασκευή του Octave. Το υποσύνολο των βιβλιοθηκών αναφοράς BLAS και LAPACK έχει αφαιρεθεί από τις πηγές Octave.
- Η λειτουργία `lookup 'επεκτάθηκε για να είναι πιο χρήσιμη για δυαδική αναζήτηση γενικού σκοπού. Χρησιμοποιώντας αυτή τη βελτίωση, η λειτουργία ismember ξαναγράφηκε για σημαντικά καλύτερη απόδοση.
- Οι πραγματικοί, ακέραιοι και λογικοί πίνακες, όταν χρησιμοποιούνται στην ευρετηρίαση, θα αποθηκεύουν προσωρινά την εσωτερική τιμή index_vector (μηδενικοί δείκτες) όταν χρησιμοποιούνται με επιτυχία ως δείκτες, εξαλείφοντας την ποινή μετατροπής για την επακόλουθη ευρετηρίαση από τον ίδιο πίνακα. Συγκεκριμένα, αυτό σημαίνει ότι δεν χρειάζεται πλέον να αποφεύγεται η επαναλαμβανόμενη ευρετηρίαση με λογικές συστοιχίες χρησιμοποιώντας την εύρεση για λόγους απόδοσης.
- Οι λογικές μήτρες αντιμετωπίζονται πλέον αποτελεσματικότερα όταν χρησιμοποιούνται ως δείκτες. Το Octave θα διατηρήσει τον δείκτη ως λογική μάσκα, εκτός αν ο λόγος των πραγματικών στοιχείων είναι αρκετά μικρός, χρησιμοποιώντας έναν εξειδικευμένο κώδικα. Προηγουμένως, όλες οι λογικές μήτρες μετατράπηκαν πάντα πρώτα σε δείκτες. Αυτό έχει ως αποτέλεσμα την εξοικονόμηση τόσο της μνήμης όσο και του χρόνου επεξεργασίας.
- Οι λειτουργίες `sub2ind 'και` ind2sub' επανεμφανίστηκαν ως συγκεντρωμένες λειτουργίες για καλύτερη απόδοση. Αυτές οι λειτουργίες είναι πλέον ταχύτερες, μπορούν να αποφέρουν πιο οικονομικά αποτελέσματα για τα εύρη και μπορούν να επαναχρησιμοποιήσουν τον μηχανισμό προσωρινής αποθήκευσης δεικτών που περιγράφεται στην προηγούμενη παράγραφο.
- Οι ενσωματωμένες ισοδύναμες λειτουργίες με τους συνεταιριστικούς χειριστές (`plus ',` times', `mtimes ',` and' και `or ') έχουν επεκταθεί για να δέχονται πολλαπλά επιχειρήματα. Αυτό είναι ιδιαίτερα χρήσιμο για τους καταλόγους αθροίσεων (πολλαπλασιασμού κλπ.) Αντικειμένων (ενδεχομένως διακριτών τύπων):
- matrix_sum = plus (matrix_list {:})
- Έχει εφαρμοστεί ένας τύπος αντικειμένου FTP με βάση το libcurl. Αυτά τα αντικείμενα επιτρέπουν τη διαχείριση συνδέσεων ftp, λήψεων και μεταφορτώσεων. Για παράδειγμα,
- Η προεπιλεγμένη συμπεριφορά του `assert (observed, expected) 'έχει χαλαρώσει για να χρησιμοποιήσει λιγότερο αυστηρούς ελέγχους που δεν απαιτούν να ταιριάζουν τα εσωτερικά των τιμών. Αυτό αποφεύγει προηγούμενες έγκυρες δοκιμές από σπάσιμο λόγω νέων εσωτερικών κατηγοριών που εισήχθησαν σε μελλοντικές εκδόσεις Octave.
- Για παράδειγμα, όλοι αυτοί οι ισχυρισμοί ήταν αληθινοί στο Octave 3.0.x αλλά ψευδείς στο 3.2.x λόγω νέων βελτιστοποιήσεων και βελτιώσεων: (2) (1, 5, 5), 2 * (1: 5)) βεβαιώνουμε (μηδενικά (0, 0) (αυτά (1,5)))
- Η συμπεριφορά των λειτουργιών της βιβλιοθήκης «ismatrix», «issquare» και «issymmetric» έχει αλλάξει για μεγαλύτερη συνοχή. Η συνάρτηση `ismatrix 'τώρα επιστρέφει αληθής για όλους τους πίνακες αριθμητικών, λογικών και χαρακτήρων 2-D ή N-D. Προηγουμένως, το `ismatrix 'επέστρεψε ψευδώς αν η πρώτη ή η δεύτερη διάσταση ήταν μηδέν. Ως εκ τούτου, `ismatrix ([]) 'ήταν ψευδής, ενώ` ismatrix (μηδέν (1,2,0))' ήταν αληθές.
- Η συνάρτηση `issquare 'επιστρέφει τώρα μια λογική κλίμακα και είναι ισοδύναμη με την έκφραση
- ismatrix (x) & amp; ndims (x) == 2 & amp; & amp; γραμμές (x) == στήλες (x)
- Η διάσταση δεν επιστρέφεται πλέον. Ως αποτέλεσμα, το `issquare ([]) 'τώρα είναι αληθές. Η λειτουργία 'issymmetric' τώρα ελέγχει για συμμετρία αντί για Hermitianness. Για τους τελευταίους, δημιουργήθηκε ισερμίτης. Επίσης, η λογική κλίμακα επιστρέφεται και όχι η διάσταση, έτσι `issymmetric ([]) 'είναι πλέον αλήθεια. Οι λαβές λειτουργιών γνωρίζουν τώρα τις υπερφορτωμένες λειτουργίες. Αν μια λειτουργία είναι υπερφορτωμένη, η λαβή καθορίζει τη στιγμή της αναφοράς της ποια λειτουργία θα καλέσει. Μια έκδοση που δεν έχει υπερφορτωθεί δεν χρειάζεται να υπάρχει.
- Οι λειτουργίες υπερφόρτωσης για τις ενσωματωμένες κατηγορίες (διπλό, int8, κελί, κλπ.) είναι πλέον συμβατές με το Matlab.
- Οι χειρισμοί λειτουργιών μπορούν πλέον να συγκριθούν με τους χειριστές == και! =, καθώς και με τη λειτουργία `isequal '.
- Η απόδοση της συγκολλήσεως (χρησιμοποιώντας το []) και οι λειτουργίες `cat ',` horzcat' και `vertcat 'έχουν βελτιωθεί για πολυδιάστατες συστοιχίες.
- Οι χειριστές εκχώρησης λειτουργίας + =, - =, * = και / = τώρα συμπεριφέρονται πιο αποτελεσματικά σε ορισμένες περιπτώσεις. Για παράδειγμα, εάν το M είναι μήτρα και S είναι κλιμακωτό, τότε η δήλωση
- M + = S ·
- θα λειτουργεί με τα δεδομένα του M στη θέση του εάν δεν μοιράζεται άλλη μεταβλητή, αυξάνοντας συνήθως την απόδοση του χρόνου και της μνήμης. Επιλέγονται μόνο επιλεγμένοι κοινές συνδυασμοί, δηλαδή: matrix + = μήτρα μήτρας - μήτρα μήτρας. * = Μήτρα μήτρας ./= μήτρα
- μήτρα + = κλιμακωτή μήτρα - = κλιμακωτή μήτρα * = κλιμακωτή μήτρα / = κλιμακωτή
- λογική μήτρα | = λογική μήτρα λογικής μήτρας & amp; = λογική μήτρα
- όπου η μήτρα και η κλίμακα ανήκουν στην ίδια κλάση. Η αριστερή πλευρά πρέπει να είναι μια απλή μεταβλητή αναφορά.
- Επιπλέον, όταν οι ομαδικοί χειριστές εμφανίζονται σε εκφράσεις, ο Octave θα προσπαθήσει επίσης να πραγματοποιήσει τη λειτουργία on-place αν το επιχείρημα είναι προσωρινή έκφραση.
- Η επίδραση των χειριστών σύγκρισης (, =) που εφαρμόζονται σε σύνθετους αριθμούς έχει αλλάξει ώστε να συμβαδίζει με τις αυστηρές εντολές που ορίζονται από τις λειτουργίες `max ',` min' και `sort '. Συγκεκριμένα, οι σύνθετοι αριθμοί συγκρίνονται με τη λεξικογραφική σύγκριση των ζευγών «[abs (z), arg (z)]». Προηγουμένως, συγκρίνονταν μόνο τα πραγματικά μέρη. αυτό μπορεί να επιτευχθεί τυχαία με τυλίγοντας τους τελεστές σε πραγματικό ().
- Η αυτόματη απλοποίηση των σύνθετων αποτελεσμάτων υπολογισμών άλλαξε. Το Octave θα απλοποιήσει τώρα κάθε πολύπλοκο αριθμό με μηδενικό φανταστικό μέρος ή οποιοδήποτε σύνθετο πίνακα με όλα τα στοιχεία που έχουν μηδενικό φανταστικό κομμάτι σε μια πραγματική τιμή. Προηγουμένως, αυτό έγινε μόνο για θετικά μηδενικά. Σημειώστε ότι η συμπεριφορά της σύνθετης συνάρτησης παραμένει αμετάβλητη και εξακολουθεί να παράγει μια πολύπλοκη τιμή ακόμα και αν το φανταστικό μέρος είναι μηδέν.
- Ως παρενέργεια του refactoring κώδικα στο liboctave, οι δυαδικές λογικές λειτουργίες είναι πλέον ευκολότερα επιδεκτικές στις βελτιστοποιήσεις των μεταγλωττιστών και έτσι είναι σημαντικά ταχύτερες.
- Η Octave επιτρέπει τώρα τις μεθόδους subsasgn που ορίζονται από το χρήστη για τη βελτιστοποίηση των πλεονάζοντων αντιγράφων. Για περισσότερες πληροφορίες, ανατρέξτε στο εγχειρίδιο.
- Πιο αποδοτικός χειρισμός διαχωρισμού μήτρας. Το Octave είναι τώρα σε θέση να χειριστεί τις εκφράσεις M 'V M.' V V / M
- (M είναι μια μήτρα και V είναι ένας φορέας) πιο αποτελεσματικά σε ορισμένες περιπτώσεις. Συγκεκριμένα, εάν το Μ είναι τριγωνικό, και οι τρεις εκφράσεις θα αντιμετωπιστούν με μία μόνο κλήση στο xTRTRS (από το LAPACK), με τις κατάλληλες σημαίες. Προηγουμένως, και οι τρεις εκφράσεις απαιτούσαν φυσική μεταφορά της Μ.
- Ο αποτελεσματικότερος χειρισμός ορισμένων λειτουργιών μικτής πραγματικής σύνθετης μήτρας. Για παράδειγμα, εάν το RM είναι μια πραγματική μήτρα και η CM μια σύνθετη μήτρα, RM CM
- μπορεί πλέον να αξιολογηθεί ως
- σύνθετο (RM πραγματικό (CM), RM εικόνες (CM))
- ή ως
- σύνθετο (RM) CM,
- ανάλογα με τις διαστάσεις. Η πρώτη μορφή απαιτεί περισσότερους προσωρινούς και αντιγράφους, αλλά μειώνει κατά το ήμισυ τον αριθμό FLOP, ο οποίος συνήθως φέρνει καλύτερες επιδόσεις εάν η RM έχει αρκετές σειρές. Προηγουμένως, χρησιμοποιήθηκε πάντα η δεύτερη φόρμα.
- Ομοίως επηρεάζεται η διαίρεση μήτρας.
- Ο αποτελεσματικότερος χειρισμός τριγωνικών συντελεστών της μήτρας επέστρεψε από παραγοντοποιήσεις. Οι λειτουργίες για τον υπολογισμό των συντεταγμένων QR, LU και Cholesky θα επιστρέψουν αυτόματα τους τριγωνικούς συντελεστές μήτρας με το σωστό εσωτερικό σύνολο matrix_type, έτσι ώστε να μην χρειάζεται να υπολογιστεί όταν η μήτρα χρησιμοποιείται για διαίρεση.
- Η ενσωματωμένη συνάρτηση «άθροισμα» χειρίζεται πλέον αποτελεσματικά το μη-αυτόχρονο άθροισμα (δηλ. άθροισμα διπλής ακρίβειας εισόδων μεμονωμένων ή ακέραιων), αποφεύγοντας μια προσωρινή μετατροπή ολόκληρης της συστοιχίας εισόδου σε διπλασιασμό. Επιπλέον, το `sum 'μπορεί τώρα να δεχθεί ένα επιπλέον χαρακτηριστικό επιλογής, χρησιμοποιώντας έναν αντισταθμισμένο αλγόριθμο αθροίσματος και όχι ένα απλό ποσό, το οποίο βελτιώνει σημαντικά την ακρίβεια αν συμβεί αθροιστική κατάργηση.
- Η ενσωματωμένη λειτουργία bsxfun χρησιμοποιεί πλέον βελτιστοποιημένο κώδικα για ορισμένες περιπτώσεις όπου παρέχονται ενσωματωμένες χειρολαβές χειριστή. Οι βελτιστοποιήσεις αφορούν τους χειριστές `plus ',` minus', `times ',` ldivide' , "rdivide", "power", "και", "ή" (για λογικούς πίνακες), οι σχεσιακοί φορείς `eq ',` ne', `lt ',` le', `gt ' οι λειτουργίες `min 'και` max'. Οι βελτιστοποιήσεις ισχύουν μόνο όταν και οι δύο τελεστές είναι της ίδιας ενσωματωμένης κλάσης. Οι μικτές πραγματικές / πολύπλοκες και οι μονές / διπλές λειτουργίες θα μετατρέψουν πρώτα τους δύο τελεστές σε ένα κοινό τύπο.
- Οι λειτουργίες `strfind 'και` strrep' έχουν πλέον καταρτίσει εφαρμογές, διευκολύνοντας σημαντικά πιο αποτελεσματική αναζήτηση και αντικατάσταση σε χορδές, ειδικά με μακρύτερα μοτίβα. Ο κώδικας του `strcat 'έχει διανυσματοποιηθεί και τώρα είναι πολύ πιο αποδοτικός όταν πολλές σειρές συνδέονται. Οι λειτουργίες `strcmpi 'και` strncmpi' είναι τώρα ενσωματωμένες λειτουργίες, παρέχοντας καλύτερες επιδόσεις.
- Υποστηρίζεται πλέον το άθροισμα των παραμέτρων της συνάρτησης εισόδου και εξόδου που αγνοεί το Matlab χρησιμοποιώντας το tilde (~). Μπορούν να ανιχνευθούν παραβλέπονται παράγωγα εξόδου από μια λειτουργία χρησιμοποιώντας την ενσωματωμένη συνάρτηση `isargout '. Για περισσότερες λεπτομέρειες, συμβουλευτείτε το εγχειρίδιο.
- Έχει καταργηθεί ο τύπος δεδομένων λίστας, που καταργήθηκε από την εισαγωγή των κελιών.
- Η συνάρτηση συστοιχίας έχει βελτιστοποιηθεί και τώρα είναι σημαντικά ταχύτερη σε ορισμένες σημαντικές περιπτώσεις.
- Η συμπεριφορά των λειτουργιών isreal και isnumeric άλλαξε για να είναι περισσότερο συμβατή με Matlab.
- Ο μαθηματικός ακέραιος αριθμός & amp; οι προειδοποιήσεις μετατροπής (Octave: int-convert-nan, Octave: int-convert-non-int-val, Octave: int-convert-overflow,
- rem και mod είναι τώρα ενσωματωμένες λειτουργίες. Επίσης, χειρίζονται αποτελεσματικά τους ακέραιους τύπους χρησιμοποιώντας αριθμητική ακέραιη.
- Η αραιή ευρετηρίαση και η ευρετηριακή αντιστοίχιση έχουν επανεξεταστεί ως επί το πλείστον. Δεδομένου ότι ο Octave χρησιμοποιεί συμπιεσμένη αποθήκευση στήλης για αραιές μήτρες, ιδιαίτερη προσοχή δίνεται στις λειτουργίες που χειρίζονται ολόκληρες στήλες. Οι ενέργειες αυτές είναι πλέον σημαντικά ταχύτερες, καθώς και ορισμένες άλλες σημαντικές περιπτώσεις.
- Επιπλέον, είναι πλέον δυνατή η προκαταχώριση μιας αραιής μήτρας και στη συνέχεια η συμπλήρωσή της με αναθέσεις, υπό τον όρο ότι πληρούν ορισμένες προϋποθέσεις. Για περισσότερες πληροφορίες, συμβουλευτείτε τη λειτουργία `spalloc ', η οποία δεν είναι πλέον απλή ομοίωμα. Συνεπώς, τα nzmax και nnz δεν είναι πλέον ίσα πάντα στο Octave. Το οκτάβιο μπορεί επίσης να παράγει μια μήτρα με nnz < nzmax ως αποτέλεσμα άλλων λειτουργιών, οπότε θα πρέπει να χρησιμοποιείτε με συνέπεια το nnz, εκτός αν θέλετε πραγματικά να χρησιμοποιήσετε το nzmax (δηλ. το χώρο που διατίθεται για μη μη ορατά στοιχεία).
- Επίσης επηρεάζεται ο αραιός συνδυασμός και η συσσωμάτωση των αραιών πινάκων, ιδιαίτερα των μεγαλύτερων συλλογών, είναι τώρα σημαντικά πιο αποτελεσματική. Αυτό ισχύει τόσο για τις λειτουργίες [] όσο και για τις λειτουργίες cat / vertcat / horzcat.
- Είναι πλέον δυνατή η προαιρετική χρήση των οδηγών xGESDD LAPACK για τον υπολογισμό της αποσύνθεσης μοναδικής τιμής χρησιμοποιώντας το svd (), αντί για το προεπιλεγμένο xGESVD, χρησιμοποιώντας την ψευδο-μεταβλητή svd_driver διαμόρφωσης. Ο οδηγός xGESDD μπορεί να φτάσει έως και 6 φορές πιο γρήγορα όταν ζητούνται μοναδικοί φορείς, αλλά αναφέρεται ότι είναι κάπως λιγότερο ανθεκτικός σε εξαιρετικά αρρωσμένους πίνακες.
- pkg δέχεται τώρα μια επιλογή -forge για τη λήψη και την εγκατάσταση πακέτων από το Octave Forge αυτόματα. Για παράδειγμα, το pkg install -forge γενικά θα κατεβάσει αυτόματα την τελευταία έκδοση του γενικού πακέτου και θα προσπαθήσει να το εγκαταστήσει. Δεν παρέχεται αυτόματη επίλυση εξαρτήσεων. Επιπλέον,
- Η λίστα pkg -forge μπορεί να χρησιμοποιηθεί για τη λίστα όλων των διαθέσιμων πακέτων.
- ** Η εσωτερική αναπαράσταση δεδομένων των structs έχει ξαναγραφεί εντελώς ώστε να είναι εφικτές ορισμένες βελτιστοποιήσεις. Τα δεδομένα πεδίου μπορούν τώρα να μοιραστούν μεταξύ δομών με ίσα κλειδιά αλλά διαφορετικές διαστάσεις ή τιμές, κάνοντας λειτουργίες που διατηρούν τα πεδία πιο γρήγορα. Η εξοικονόμηση αποθηκεύεται τώρα για κλιμακωτές δομές (όπως και οι περισσότερες άλλες κλίμακες), καθιστώντας τη χρήση τους πιο αποδοτική από τη μνήμη. Ορισμένες λειτουργίες που μοιάζουν με array σε δομές (concatenation, ομοιόμορφη cellfun, num2cell) έχουν αποκτήσει σημαντική επιτάχυνση. Επιπλέον, η κλάση octave_scalar_map παρέχει τώρα μια απλούστερη διεπαφή για να δουλέψετε με διαβαθμισμένες δομές μέσα σε μια συνάρτηση C ++ DLD.
- ** Υπάρχουν δύο νέες μορφές για την εμφάνιση αριθμών:
- μορφή σύντομης μορφής eng eng eng
- Και οι δύο αριθμοί εμφάνισης στη μηχανική σημείωση, δηλ. mantisa + εκθέτης όπου ο εκθέτης είναι πολλαπλάσιο του 3.
- ** Οι ακόλουθες λειτουργίες είναι νέες στο Octave 3.4:
- συστοιχία αρχείων μητρώου nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect επαναλήψεις uimenu cbrt ifelse pie3 επαναφορά whitebg curl ishermitian powerset rsf2csf chop isindex ppder αποθήκευση daspect luupdate ppint strread divergence συγχώνευση ppjumps textread
- ** Η χρήση της λειτουργίας εικόνας για προβολή εικόνων με εξωτερικά προγράμματα όπως η εμφάνιση, η εμφάνιση xv και η απεικόνιση xload δεν υποστηρίζονται πλέον. Η λειτουργία image_viewer έχει επίσης καταργηθεί.
- ** Η συμπεριφορά των αναθέσεων δομή σε μη-δομή τιμές έχει αλλάξει. Προηγουμένως, ήταν δυνατή η αντικατάσταση μιας αυθαίρετης τιμής: a = 1; a.x = 2,
- Αυτό δεν είναι πλέον εφικτό εκτός εάν το a είναι ένας άδειος πίνακας ή συστοιχία κυττάρων.
- ** Η συνάρτηση dlmread έχει επεκταθεί για να επιτρέψει τον καθορισμό μιας προσαρμοσμένης τιμής για κενά πεδία
- ** Οι λειτουργίες dlmread και dlmwrite έχουν τροποποιηθεί για να δέχονται ταυτότητες αρχείων (όπως επιστρέφονται από το fopen) εκτός από ονόματα αρχείων.
- ** Η Octave μπορεί πλέον να βελτιστοποιήσει την επιβάρυνση του διερμηνέα μιας ανώνυμης λαβής λειτουργίας, αν η λειτουργία απλά καλεί μια άλλη λειτουργία ή χειρίζεται με ορισμένες από τις παραμέτρους της που είναι δεσμευμένες σε ορισμένες τιμές. Παράδειγμα: f = @ (x) άθροισμα (x, 1)
- Όταν καλείται το f, η κλήση προωθείται στο @sum με τη συνημμένη 1 συνημμένη και η κλήση ανώνυμης λειτουργίας δεν εμφανίζεται στη στοίβα κλήσεων.
- Αχρησιμοποίητες λειτουργίες.
- Οι παρακάτω λειτουργίες απορρίφθηκαν στο Octave 3.2 και θα αφαιρεθούν από το Octave 3.6 (ή οποιαδήποτε έκδοση είναι η δεύτερη σημαντική έκδοση μετά από 3.2):
- create_set spcholinv splm spumprod spmax iscommand spumsum spmin israwcommand spdet spprod spchg spdiag spqr loadimage spfind spsmart mark_as_command sphcat spsumsq mark_as_rawcommand spvc spvcat spatron spkron str2mat spchol splchol unmark_command spchol2inv διαιρέσει unmark_rawcommand
- Οι ακόλουθες λειτουργίες έχουν καταργηθεί στο Octave 3.4 και θα αφαιρεθούν από το Octave 3.8 (ή οποιαδήποτε έκδοση είναι η δεύτερη σημαντική έκδοση μετά από 3.4):
- autocor cellidx γάμμα τιμές krylovb autocov αποστολή glpkmex replot betai fstat is_global saveimage
- Για συμβατότητα με το Matlab, το mu2lin (x) είναι πλέον ισοδύναμο με το mu2lin (x, 0).
- Η βιβλιοθήκη ARPACK διανέμεται πλέον με το Octave, επομένως δεν χρειάζεται πλέον να είναι διαθέσιμη ως εξωτερική εξάρτηση κατά την οικοδόμηση του Octave.
(fp, "gnu / octave"), mget (fp, "octave-3.2.3.tar.bz2"), κλείσιμο (fp),
Οι ψευδο-μεταβλητές διαμόρφωσης, όπως το page_screen_output ή το confirm_recursive_rmdir (ή το προαναφερθέν svd_driver), δέχονται τώρα μια επιλογή "local" ως δεύτερο όρισμα ζητώντας την αλλαγή να ακυρωθεί όταν επιστρέψει η τρέχουσα συνάρτηση: function [status, msg] = rm_rf (dir) confirm_recursive_rmdir (ψευδής, "τοπική"); [status, msg] = rmdir (διεύθυνση, "s"); ... endfunction Κατά την επιστροφή, το confirm_recursive_rmdir θα αποκατασταθεί στην τιμή που είχε στην είσοδο στη λειτουργία, ακόμα και αν υπήρχαν μεταγενέστερες αλλαγές στη μεταβλητή στη συνάρτηση rm_rf ή σε κάποια από τις λειτουργίες που καλεί. Το
Τι νέο υπάρχει στην έκδοση 3.2.3:
- Το Octave 3.2.3 είναι μια έκδοση που καθορίζει σφάλματα
Τι νέο υπάρχει στην έκδοση 3.0.4:
- Octave 3.0.4 είναι μια απελευθέρωση σφαλμάτων. Τα περισσότερα σφάλματα που αναφέρθηκαν μετά την έκδοση της έκδοσης 3.0.3 έχουν διορθωθεί. Σημειώστε ότι το Octave 3.0 διαφέρει σημαντικά από το Octave 2.1.x, ιδιαίτερα όσον αφορά τα γραφικά, τον χειρισμό διαδρομής και τις ενσωματωμένες μεταβλητές.
Τα σχόλια δεν βρέθηκε