Προς το περιεχόμενο

Πρόβλημα στη MATLAB σχετικά με MLP!!!


Ryan

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας παιδιά...Έχω προβληματάκι στη Matlab σχετικά με ένα πρόγραμμα που γράφω για MLP(Multi Layer Perceptron) και ενώ (έτσι όπως πιστεύω) έχω γράψει σωστά τον κώδικα δεν μοθ τρέχει και μου βγάζει error...Αν είναι κάποιος γνώστης του θέματος και μπορεί να βοηθήσει...

Ευχαριστώ εκ των προτέρων...

 

 

ΥΣ. Subscript indices must either be real positive integers or logicals.

Error in ==> G:\mlp.m

On line 18 ==> total=total+(w(S,L)*z(L,S-1));

Δημοσ.

input_variable=2;

input_coloums=3;

 

w=[1 -1 0.5;0.5 -1 1];

w1=[1 0.2 -1;0 0.5 0;0 0.5 0;-1 0.2 1];

w2=[1 0 0.2 -1.2; -0.5 0.5 0.5 -0.5;-0.8 -0.2 0 1];

x=[1 0];

z=x;

total=0;

for S=1:3

for R=1:input_coloums

total=0;

switch S

case 1

 

for L=1:input_variable

total=total+(w(S,L)*z(L,S-1));

end

case 2

for L=1:input_variable

total=total+w1(S,L)*z(L,S-1);

end

case 3

for L=1:input_variable

total=total+w2(S,L)*z(L,S-1);

end

SA(S,R)=1+total;

fprintf SA(S,R);

z(S,R)=1/(1+exp^-SA(S,R));

fprintf z(S,R);

end

end

switch inputvariable

case 2

input_variable=3;

case 3

input_variable=4;

end

switch inputcoloums

case S:2

input_coloums=4;

case S:3

input_coloums=3;

end

end

 

 

Θες να σου δώσω και το σχημα?

Δημοσ.

Σου χτυπάει σε αυτήν την γραμμή γιατί οι πίνακες αρχίζουν από το 1.

 

Να σου εξηγήσω τι παίζει.

for L=1:input_variable

total=total+(w(S,L)*z(L,S-1));

end

 

Για L=1 και S=1 έχουμε :

total = total + (w(1,1)*z(1,0));

 

Άρα από ότι κατάλαβες αυτό το -1 εκεί μέσα ( στο case 1) σου κάνει την ζημιά.

Δημοσ.

Πέραν αυτού ο κώδικας σου θα μπορούσε να έχει γραφεί σε 5 γραμμές χωρίς for-loops και switch statements αν τον έκανες vectorized. Υπενθυμίζω ότι δεν γράφουμε MATLAB όπως π.χ. C . :-)

Δημοσ.
Καλά ναι και αυτό είναι αλλά δεν είναι αυτό που του δημιουργεί το πρόβλημα ;)

 

ναι προφανώς το πρόβλημα είναι στο indexing, απλά συμπληρωματικά μια δεύτερη παρατήρηση. :-)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...