Πράξεις με πίνακες και πράξεις με for σε πίνακες στο Octave/matlab

Οι πράξεις με πίνακες και οι πράξεις σε πίνακες τα στοιχεία των οποίων διατρέχονται με βρόγχο for (ή while) είναι από το πιο παρεξηγημένα θέματα, τουλάχιστον σε όσους προέρχονται από κάποια άλλη γλώσσα προγραμματισμού.

Για παράδειγμα, ας υποθέσουμε πως ζητούνται οι 5 πρώτοι όροι της ακολουθίας:

$$ a_n = (1+1/n)^n, \, n=1,2,3\ldots $$

Ο κλασσικός τρόπος είναι:

N = 5;
for i=1:N
  a(i) = (1+1/i)^i;
end

Με αποτέλεσμα:

octave:> a
a =

   2.0000   2.2500   2.3704   2.4414   2.4883

Δεν είναι και ο περισσότερο ενδεδειγμένος. Είναι προτιμότερο να λύσετε το πρόβλημα με διανυσματικές πράξεις:

octave:> n=1:5; 
octave:> a=(1+1./n).^n
a =

   2.0000   2.2500   2.3704   2.4414   2.4883

Προσπαθήστε να λύνετε όλα τα προβλήματα (όπου είναι εφικτό) κάνοντας πράξεις με πίνακες και διανύσματα. Αποφύγετε τις άσκοπες διαδικασίες με βρόγχους επανάληψης.

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.