Timonkaipumpa Δημοσ. 3 Απριλίου 2012 Δημοσ. 3 Απριλίου 2012 Ευχαριστώ αλλά χάθηκα! Υπάρχει δυνατότητα επεξήγησης;! edit: Το κατάλαβα! Υπάρχει αντίστοιχος κώδικας για να κάνουμε το ίδιο στις γραμμές ; Θα σου εξηγήσω τι ακριβώς κάνει ο κώδικας, για να μπορέσεις να τον αλλάξεις. > nikos = zeros(1, size(pina, 2)); η μεταβλητή nikos θα είναι ένας πίνακας με μηδενικά και διαστάσεις 1 x ό,τι νούμερο έχει σαν δεύτερη διάσταση (άρα στήλες) ο πίνακας pina. > for indx = 1:size(pina, 2) αρχίζεις ένα for loop, όπου η μεταβλητή σου που θα αυξάνει και θα ελέγχεται για το for loop θα είναι η indx. Οι τιμές της θα είναι από το 1, με βήμα 1, έως τον αριθμό για την δεύτερη διάσταση του πίνακα pina > nikos(indx) = mean(pina(pina(:,indx)~=0)); για κάθε στοιχείο του πίνακα nikos που δείχνει η μεταβλητή indx (nikos(indx)), δώστου την τιμή που θα είναι ο μέσος όρος (mean) των στοιχείων του πίνακα pina ( mean(pina ) τα οποία ανήκουν σε όλες τις γραμμές (pina(:, ) και σε στήλη που δείχνει η μεταβλητή indx ( pina(:, indx) ) και τα οποία δεν είναι ίσο με μηδέν. > end τελειώνει το for loop
nikoskon Δημοσ. 3 Απριλίου 2012 Μέλος Δημοσ. 3 Απριλίου 2012 Δεν έχω λόγια... Ευχαριστώ παίδες... Sent from my GT-I9000 using Insomnia
Timonkaipumpa Δημοσ. 3 Απριλίου 2012 Δημοσ. 3 Απριλίου 2012 Εάν το μάθεις το MATLAB, θα δεις ότι παρέχει αρκετές ευκολίες για την διαδικασία ελέγχου της σκέψης σου (proof of concept). Δυστυχώς όμως, δεν τα πάει τόσο καλά με ανεπτυγμένα θέματα (διαχείριση callback, διαχείριση μνήμης μεγάλων αντικειμένων κτλ) και real time διεργασίες.
Dr.Fuzzy Δημοσ. 3 Απριλίου 2012 Δημοσ. 3 Απριλίου 2012 Μπορεί να γίνει και χωρίς for-loop πολύ πιο γρήγορα με find. Τα for-loops καλο είναι να αποφεύγονται στο MATLAB διότι καθυστερούν παρα πολυ και να χρησιμοποιούνται μόνο όπου ο κώδικας δεν μπορεί να γίνει vectorized!
Timonkaipumpa Δημοσ. 3 Απριλίου 2012 Δημοσ. 3 Απριλίου 2012 Μπορεί να γίνει και χωρίς for-loop πολύ πιο γρήγορα με find. Τα for-loops καλο είναι να αποφεύγονται στο MATLAB διότι καθυστερούν παρα πολυ και να χρησιμοποιούνται μόνο όπου ο κώδικας δεν μπορεί να γίνει vectorized! Τα logical indices είναι πιο γρήγορα από το find. Το προτείνει η ίδια η mathworks. Το συγκεκριμένο task δεν θα μπορούσε να γίνει χωρίς την χρήση for loop. Ακόμα και με την find, ως: > [x, y] = find(pina~=0); θα έπρεπε να μπουν τα νέα στοιχεία σε έναν νέο πίνακα αλλά δεν υπήρχε η εγγύηση ότι ο νέος θα μπορούσε να έχει ίδιο αριθμό σειρών ανά στήλη. Έτσι, δεν θα μπορούσε να χρησιμοποιηθεί η mean σε όλο τον πίνακα.
insomniaK Δημοσ. 4 Απριλίου 2012 Δημοσ. 4 Απριλίου 2012 νομίζω πως από την εκδοση 2010a και δώθε, ακόμα και η αυτόματη διόρθωση στον editor, αντικαθιστά όλα τα find με indeces.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα