THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Matlab, Mathematica, Octave, EngLab κλπ => Topic started by: spin on February 27, 2011, 18:54:54 pm



Title: ΒΟΗΘΕΙΑ για loop στο MATLAB
Post by: spin on February 27, 2011, 18:54:54 pm
Ρε παιδιά, ακούστε το πρόβλημά μου,

έχω ένα for ii=0:25 μέσα στο οποίο υπολογίζεται ένα error(ii)= τοσο... Δηλαδή βγαίνει πίνακας με 26 τιμές για το λάθος. Το ιι συμβολίζει το snr. Κλείνει με το end και μετά υπολογίζεται το BER=error/N;

Μια χαρά, αλλά επειδή είναι τυχαία η διαδικασία για μεγλύτερη ακρίβεια θέλω να επαναλάβω τον κύκλο 100 φορές και να πάρω στο τέλος την μέση τιμή για κάθε στοιχείο του error και έτσι να υπολογίσω το ΒΕR.
Κάπου το χάνω με τους πίνακες, έχει κανείς ιδέα πως να υλοποιήσω τον επιπλέον loop for zz=1:100 και τον υπολογισμό του μέσου όρου?

Το πρόγραμμα έχει ως εξής

for ii=0:25

.....

error(ii)=.....;

end

BER=error/N;

Πείτε καμιά ιδέα....

ευχαριστώωωωωωω πολύυυυυ με σώζετεεεεεεεεεεεε


Title: Re: ΒΟΗΘΕΙΑ για loop στο MATLAB
Post by: djifos on February 27, 2011, 19:30:25 pm
Αν κατάλαβα σωστά αυτό που ζητάς, γίνεται έτσι:

Code:
BER=0;
N=26;
% error=0;
for zz=1:100
    for ii=1:26
        error(ii)= [i](your expression)[/i]
    end

    BER = (BER + error/N) / zz;

end
BER


Title: Re: ΒΟΗΘΕΙΑ για loop στο MATLAB
Post by: Verminoz on February 27, 2011, 19:34:42 pm
Αν κατάλαβα καλά το error είναι ένας πίνακας 1x26 και θες να δημιουργήσεις 100 τέτοιους πίνακες. Το BER θα είναι ένας πίνακας 1x26 καθένα από τα τα στοιχεία του οποίου είναι ο μέσος όρος των 100 διαφορετικών τιμών των αντίστοιχων στοιχείων όλων των πινάκων error 1x26. Σωστά;

error = zeros(100,26)
BER = zeros(1,26);

for zz=1:100

for ii=1:26

error(zz,ii) = ... ;

end

end

for k=1:26

BER(k) = mean(error(:,k));

end

Κάτι τέτοιο ίσως;


Title: Re: ΒΟΗΘΕΙΑ για loop στο MATLAB
Post by: spin on February 27, 2011, 22:20:20 pm
ευχαριστώ παιδιά!
 
Δούλεψε όντως!


και τρελαίνομαι  :D :D :D :D :D :D :D :D :D :D