WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dynamische Programmierung Fehler im Skript

 

ds1993
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 16.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2018, 15:36     Titel: Dynamische Programmierung Fehler im Skript
  Antworten mit Zitat      
Hallo liebe Forenmitglieder,

ich bin relativ unerfahren, was die Verwendung von Matlab anbelangt, und widme mich daher an euch. Ich hoffe ihr könnt mir behilflich sein und ich kann daraus lernen.

Und zwar hab ich folgendes Skript:

Code:

costs(1,1,2,1) = 12;
costs(1,1,2,2) = 7;
costs(2,1,3,1) = 5;
costs(2,1,3,2) = 6;
costs(2,1,3,3) = 9;
costs(2,2,3,1) = 14;
costs(2,2,3,2) = 10;
costs(2,2,3,3) = 11;
costs(3,1,4,1) = 8;
costs(3,1,4,2) = 7;
costs(3,1,4,3) = 10;
costs(3,2,4,1) = 9;
costs(3,2,4,2) = 7;
costs(3,2,4,3) = 9;
costs(3,3,4,1) = 10;
costs(3,3,4,2) = 7;
costs(3,3,4,3) = 8;
costs(4,1,5,1) = 5;
costs(4,2,5,1) = 9;
costs(4,3,5,1) = 8;

num_states = [1 2 3 3 1];

c=costs;

nodes=5;

n=nodes;

V(n,1)=0;

path=0;
path_length=0;

index = 1;

for k=1:1:4
   
    for i=1:num_states(k)
   
        for j=1:num_states(k+1)

        path_length(j)= c(k,i,k+1,j)+V(k+1,j);

        end

    [minval, i] = min(path_length);

    end
   
path(k) = i;

end

clear

   
path_length;


path;


for k=4:-1:1

    for i=1:num_states(k)

        for j=1:num_states(k+1)
 
        path_length(j)=c(k,i,k+1,j)+V(k+1,j);

        end
 
    V(k,i)=min(path_length);
     
    end
   
end
 
clear

path_length;

V(1,1)  

___________________________________________________________________

Was genau muss ich da korrigieren, damit es fehlerfrei läuft?
Danke vorab für eure Hilfe!

Zuletzt bearbeitet von ds1993 am 16.08.2018, 15:41, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 16.08.2018, 15:38     Titel:
  Antworten mit Zitat      
Hallo ds1993,

bitte die Code-Umgebung verwenden.

Und eine Fehlermeldung macht die Fehlersuche deutlich einfacher Wink Was kommt denn für ein Fehler?

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
ds1993
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 16.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2018, 15:40     Titel:
  Antworten mit Zitat      
Alles klar, achte demnächst darauf!

Fehlermeldung lautet folgendermaßen:

Index exceeds matrix dimensions.

Error in DP_ds (line 43)
path_length(j)= c(k,i,k+1,j)+V(k+1,j);
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 16.08.2018, 15:46     Titel:
  Antworten mit Zitat      
Hallo,

V ist ein 5x1 Vektor und du versuchst auf die zweite, nicht existierende, Zeile zuzugreifen.
Entweder musst du V zu einer 5x5 Matrix erweitern oder du addierst nur den Vektor, dann musst du das in V(k+1,1) abändern.

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
ds1993
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 16.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2018, 15:51     Titel:
  Antworten mit Zitat      
Alles klar, danke! Erhalte jetzt folgende Fehlermeldung:

Undefined function or variable 'path_length'.

Error in DP_ds
path_length;

_______________________________________________________________________
Die wurde doch schon deklariert?
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 16.08.2018, 15:56     Titel:
  Antworten mit Zitat      
Hi,

Code:

clear    
path_length;
 


Mit clear löschst du deinen ganzen Workspace. Anschließend kann auf die Variable nicht mehr zugegriffen werden.
1.) Willst du wirklich alle Variablen aus dem Workspace löschen?
2.) Was willst du mit
Code:
path_length;
 

bezwecken?

Ich vermute mal, dass du die Variable path_length löschen möchtest. Die muss sich dann in der selben Zeile mit deinem clear befinden:
Code:

Oder noch besser:
Code:
clear('path_length')

Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
ds1993
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 16.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.08.2018, 17:44     Titel:
  Antworten mit Zitat      
Alles klar, hat geklappt. Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.