Error 21 (ungültiger Index)  
		 
	 
 
Erdberquark  
 
 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 16.06.2011, 12:11    
Titel : Error 21 (ungültiger Index)
 
 
 
 
  
 
           
 
Tag alle zusammen,
 
 
leider habe ich mal wieder ein Problem  
 
 
Vielleicht sehe ich auch nur den Wald vor lauter Bäumen nicht.
 
 
ich habe das Programm TG.sce (yd1,yd2)
 
und das Programm ueberholen4.sce.
 
 
Code von ueberholen4.sce
 
	
	  	
		Code: 
		 
				
 
 
 
 
exec   TG.sce  
 
lane1 = lane_change ( pos1,pos2,v1,TL,lane1,k,yd1,yd2) ; 
 
 
 
 
 
function   lane1 = lane_change( pos1,pos2,v1,TL,lane1,k,yd1,yd2) //y zum Testen 
 
  // ausscheren zum Überholen 
 
  //pause  ///<= geändert in = 
 
  if    lane1 < 2.0  & pos1( k)  +TL * v1  <= pos2( k)  then // überprüfen ob Überholer schon auf zweiter Spur 
 
      lane1 = lane1 +1 ; // Überholer wechselt langsam Spur 
 
      //lane1 = lane1 +( yd2( k-1 ) -yd2( k) ) /2 ; // Überholer wechselt langsam Spur 
 
      //y=y+( yd2( k) -yd2( k-1 ) ) /2  
 
      //l=y+( yd2( k-1 ) -yd2( k) ) /2 ; 
 
  end  ; 
 
  //pause   
 
  // einscheren nach überholen 
 
  if   pos1( k)  - pos2( k)  >= TL * v1 & lane1 >1  then // schaun ob man einscheren kann 
 
     lane1 = lane1 -0.1 ; // Überholer schwert wieder ein 
 
  end  ; 
 
 
 
 
 
 
 
 
 
 
 
 
sobald ich die Zeile "lane1 = lane1 +(yd2(k-1)-yd2(k))/2;" anstatt der anderen lane1 nutze,
 
will das Prog nicht so wie ich.
 
 
Ich bekomme immer die Meldung:
 
 
aber ich weiß nicht genau warum.
 
 
Die anderen Parameter die übergeben werden sind natürlich alle vorhanden.
 
 
Über jede Hilfe bin ich Dankbar.
 
 
Gruß
 
 
Quark
 
  
 
 
 
 
		
		 
		
		
		 
		 
		 
		
_Peter_  
 
 
 
 
 
Moderator
  
 
 
 
 
 
Beiträge: 537 
 
 
 
 
 
 
Anmeldedatum: 08.12.10 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: 7.10, 2010a 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 16.06.2011, 16:43    
Titel : 
 
 
 
 
Hallo Quark, 
 
die Fehlermeldung besagt, dass du auf einen ungültigen Index der Variable yd2 zugreifst.
 
Ich habe Scilab leider nicht, aber da gibt es sicher einen Debugger oder? Schau dir mal an wieviele Elemente yd2 hat und welchen Wert k annimmt. 
 
 
Beispiel:
 
 _________________ Gruß
 
Peter
 
_________________
 
goMatlab-Knigge  - dran gehalten?!
 
Schon in den FAQ  gesucht? Oder der MATLAB Hilfe ?
 
Ist vielleicht bei den  Skripten  oder den  Tutorials  was für dich dabei?
 
  
 
 
 
 
 
Erdberquark  
 
Themenstarter 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 17.06.2011, 07:20    
Titel : 
 
 
 
 
Hi,
 
 
Danke für deine Antwort.
 
 
Also leider hat Scilab keinen Debugger.
 
 
Zumindest nichts gutes ich kann im Code wohl pause eingeben und muss dann immer über die Menü leiste weiter klicken nicht gerade nutzbar. 
 
 
yd2 hat 1001Wert 
 
 
Die Schleife habe ich ganz vergessen.
 
 
 
 
Also macht doch k bis 1000 und yd2 bis 1001 sollte doch keine Probleme machen oder???
 
  
 
 
 
 
 
_Peter_  
 
 
 
 
 
Moderator
  
 
 
 
 
 
Beiträge: 537 
 
 
 
 
 
 
Anmeldedatum: 08.12.10 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: 7.10, 2010a 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 17.06.2011, 11:45    
Titel : 
 
 
 
 
Hallo Erdberquark, 
 
wenn ich diese Schleife bei mir durchlaufen lasse, hat k am Ende einen Wert von 1001.
 
Sicher das yd2 1001 Werte hat? Du greifst definitiv auf einen nicht vorhanden Index zu.
 _________________ Gruß
 
Peter
 
_________________
 
goMatlab-Knigge  - dran gehalten?!
 
Schon in den FAQ  gesucht? Oder der MATLAB Hilfe ?
 
Ist vielleicht bei den  Skripten  oder den  Tutorials  was für dich dabei?
 
  
 
 
 
 
 
Erdberquark  
 
Themenstarter 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 17.06.2011, 12:07    
Titel : 
 
 
 
 
Hi,
 
 
ja ich bin mir sicher  
 
 
Schau mal im Anhang.
 
 
 
Dort siehst du die letzten Werte von YD2
 
 
Oder liegt das daran das die Zahl nicht gerade groß ist???
	 
	
	
		
	 
	
		 Beschreibung:  
		
			
		 
		Download  
	 
	
		 Dateiname:  
		 Unbenannt.PNG  
	 
	
		 Dateigröße:  
		 7.33 KB  
	 
	
		 Heruntergeladen:  
		 1326 mal  
	 
	
 
  
 
 
 
 
 
_Peter_  
 
 
 
 
 
Moderator
  
 
 
 
 
 
Beiträge: 537 
 
 
 
 
 
 
Anmeldedatum: 08.12.10 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: 7.10, 2010a 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 18.06.2011, 13:32    
Titel : 
 
 
 
 
Hallo Erdberquark, 
 
ich glaub dein Problem liegt in der anderen Richtung.
 
Ich nehme an du durchläufst die Funktion mit jedem der k-Werte, also von 1 - 1001. Dann liegt das Problem bei "yd2(k-1)" für k = 1. durch diese Zeile greifst du für k = 1 auf das 0. Element zu. Deswegen ungültig.
 _________________ Gruß
 
Peter
 
_________________
 
goMatlab-Knigge  - dran gehalten?!
 
Schon in den FAQ  gesucht? Oder der MATLAB Hilfe ?
 
Ist vielleicht bei den  Skripten  oder den  Tutorials  was für dich dabei?
 
  
 
 
 
 
 
Erdberquark  
 
Themenstarter 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 19.06.2011, 08:04    
Titel : 
 
 
 
 
Danke für die Antwort.
 
 
Haben den Fehler auch schon gefunden gehabt nur leider wird das ganze dadurch immer noch nicht besser!!!
 
 
Habe k einfach auf 1 gesetzt und somit gibt es keine Null mehr
 
  
 
 
 
 
 
Erdberquark  
 
Themenstarter 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 20.06.2011, 13:40    
Titel : 
 
 
 
 
Habe nun endlich keinen ungültigen Index mehr  
 
 
 
Nun habe ich ein andere Problem wie kann ich Scilab sagen wie viele nachkomme stellen er angeben soll??
 
 
Ich würde gerne berechnen 
 
 
Y=1
 
Y= Y + 0,00005
 
 
Ergebnis
 
 
Y=1
 
  
 
 
 
 
 
_Peter_  
 
 
 
 
 
Moderator
  
 
 
 
 
 
Beiträge: 537 
 
 
 
 
 
 
Anmeldedatum: 08.12.10 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: 7.10, 2010a 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 21.06.2011, 16:15    
Titel : 
 
 
 
 
also in Matlab hilft der Befehl
 
 
 
Wobei dies nur für die Anzeige gilt. Intern rechnet Matlab so genau es geht immer. 
 
Vielleicht funktioniert der Befehl auch bei Scilab.
 
 
Viel Erfolg!
 _________________ Gruß
 
Peter
 
_________________
 
goMatlab-Knigge  - dran gehalten?!
 
Schon in den FAQ  gesucht? Oder der MATLAB Hilfe ?
 
Ist vielleicht bei den  Skripten  oder den  Tutorials  was für dich dabei?
 
  
 
 
 
 
 
Erdberquark  
 
Themenstarter 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 21.06.2011, 16:33    
Titel : 
 
 
 
 
Wie muss ich den Befehl den wenn anwenden Direkt wenn ich die Variable Deklariere??
 
  
 
 
 
 
 
_Peter_  
 
 
 
 
 
Moderator
  
 
 
 
 
 
Beiträge: 537 
 
 
 
 
 
 
Anmeldedatum: 08.12.10 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: 7.10, 2010a 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 22.06.2011, 09:02    
Titel : 
 
 
 
 
In Matlab geb ich das direkt im Command Window ein. Bei Scilab weiß ich das leider nicht. Habe keinerlei Erfahrungen damit. Sry.
 _________________ Gruß
 
Peter
 
_________________
 
goMatlab-Knigge  - dran gehalten?!
 
Schon in den FAQ  gesucht? Oder der MATLAB Hilfe ?
 
Ist vielleicht bei den  Skripten  oder den  Tutorials  was für dich dabei?
 
  
 
 
 
 
 
TheSaint  
 
 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 13 
 
 
 
 
 
 
Anmeldedatum: 05.04.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 22.06.2011, 09:07    
Titel : 
 
 
 
 
 
	  Erdberquark hat Folgendes geschrieben:  
	 
	
	  Y=1
 
Y= Y + 0,00005
 
 
Ergebnis
 
 
Y=1 
	 
 
 
Setze mal anstelle des Kommas einen Punkt. Bei mir funktioniert das nämlich dann auch.
 
 <-- see?
 
  
 
 
 
 
 
Erdberquark  
 
Themenstarter 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 29 
 
 
 
 
 
 
Anmeldedatum: 08.02.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 24.06.2011, 14:01    
Titel : 
 
 
 
 
Hi,
 
 
Danke für deine Info nur leider ist der Komma ein Punkt  
 
 
0.00005 ist nur ein fiktiver Wert.
 
 
Normalerweise wird der wert durch eine Matrix berechnet.
 
  
 
 
 
 
 
TheSaint  
 
 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 13 
 
 
 
 
 
 
Anmeldedatum: 05.04.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 27.06.2011, 08:22    
Titel : 
 
 
 
 
Welche Informationen liefert Scilab über die verwendeten Variablen? Hilft dir das weiter?
 
  
 
 
 
 
 
TheSaint  
 
 
 
 
 
Forum-Anfänger
  
 
 
 
 
 
Beiträge: 13 
 
 
 
 
 
 
Anmeldedatum: 05.04.11 
 
 
 
 
 
 
Wohnort: --- 
 
 
 
 
 
 
Version: --- 
 
 
 
 
 
 
 
 
 
 
      
Verfasst am : 13.07.2011, 09:30    
Titel : 
 
 
 
 
Wenn du deinen Programmcode reduzierst und die eine Funktion mal separat testest, kannst du dann etwas aus dem Ergebnis lesen, was einen Hinweis auf den Fehler liefert?
 
Oft hilft es, Probleme an einen anderen Ort zu transferieren, dass man eine Lösung ersichtlich machen kann. Ist ein oft genutztes Stilmittel in der Literatur und im Film.
 
 
Ich hoffe, mit diesem Ansatz kommst du weiter und gibst Antwort, wenn du etwas gefunden hast.
 
  
 
 
 
 
 
 
 
 
 
Gehe zu Seite 1 , 2   Weiter  
 
 
Einstellungen und Berechtigungen
 
 
 
 
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 
 |   RSS 
   
  Hosted by:  
 
   
Copyright © 2007 - 2025
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.