Άθροισμα υπό συνθήκη στοιχείων πίνακα στο Octave/matlab

Ας δούμε πως μπορούμε να κάνουμε άθροισμα υπό συνθήκη σε στοιχεία ενός πίνακα, κάτι αντίστοιχο με τη συνάρτηση sumif του Excel/OpenCalc. Το Octave (ή το matlab) δε διαθέτουν αντίστοιχη συνάρτηση. Η δυνατότητα ωστόσο να κάνουμε πράξεις με πίνακες μας λύνουν τα χέρια.

Έστω λοιπόν ο πίνακας :

octave:> x = [0 1 2 3 0 1 2 1]
x =

   0   1   2   3   0   1   2   1

Έστω πως θέλουμε να υπολογίσουμε το άθροισμα των στοιχείων που είναι μεγαλύτερα από ή ίσα με το 2.

  1. Κατασκευή του πίνακα αληθείας της συνθήκης:
    octave:> y = (x>=2)
    y =
    
       0   0   1   1   0   0   1   0
    
  2. Πολλαπλασιασμός στοιχείο προς στοιχείο:
    octave:> x.*y
    ans =
    
       0   0   2   3   0   0   2   0
    
  3. Άθροιση:
    octave:> sum(x.*y)
    ans =  7
    
    

Ή, αν θέλετε, πιο όμορφα:

octave:> sum(x.*(x>=2))
ans =  7

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

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