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

Skript geht nicht

 

Überfordert

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2011, 11:14     Titel: Skript geht nicht
  Antworten mit Zitat      
Ich habe eine Strecke mit mehreren Segmentlängen und x Segmente und möchte nun die einzelnen längen eines jeden Segments mit einem Script berechen hab auch schonmal folgendes geschrieben:
Code:

function bsegmentlaenge
 index=1
 for k=index:length(dSOC_Segment_Data(:,1));
  if segmentlaenge==length(dSOC_Segment_Data(:,1))
   segmentlaenge=Reichweite-(dSOC_Segment_Data(k,1));
  else
   segmentlaenge=(dSOC_Segment_Data(k+1,1)-(dSOC_Segment_Data(k,1)));
  end
 end
 % Ermittlung Segmentlaenge
 % Segmentlaenge=dSOC_Speicherung(i,Cool;
 save segmentlaenge
end
 

ich möchte die einzelnen segmentlaengen in einer Tabell abgespeichert haben. Und habe keine ahnung wie ich das hinbekomme irgendwie wirft er mir immer einen Fehler über diesen Blöden : wo ich das letzte segment mit auswählen möchte was amch ich falsch?
_Peter_: Bitte Codeumgebung verwenden. Danke.


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.09.2011, 11:29     Titel: Re: Skript geht nicht
  Antworten mit Zitat      
Hallo Überfordert,

Bitte verwedne die Code-Umgebung, um Code zu posten. Das ist leicher zu lesen.
Eine Hilfe ist einfacher, wenn Du die genaue Fehlermeldung postest.
Was genau funktioniert nicht? Was nmeinst Du mit "in einer Tabelle abspeichern"?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2011, 11:37     Titel:
  Antworten mit Zitat      
Hi,

Code:



length(dSOC_Segment_Data(:,1)) % gibt dir die Anzahl der Zeilen aus, deine Schleife läuft also von 1 bis Anzahl der Spalten

% Nun greift
segmentlaenge=dSOC_Segment_Data(k+1,1)-(dSOC_Segment_Data(k,1)));
% aber auf die (k+1) Spalte zu, welche es nicht gibt -> führt wahrscheinlich zu dem Fehler
 
 
Überfordert

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2011, 11:53     Titel:
  Antworten mit Zitat      
Code:

??? Undefined function or variable "dSOC_Segment_Data".

Error in ==> bsegmentlaenge at 9
for k=index:length(dSOC_Segment_Data(1,:));
 

das ist meine Fehlermeldung!
In einer Tabelle möchte ich alle Segmentlängen abspeichern also 1segemt=länge erstes segment
2 segment = länge zweites segment usw.

Code:

function segmentlaenge = bsegmentlaenge(dSOC_Segment_Data)
%Berechnung der segmentlaenge zur berechnung von Ks (Ks soll ein Faktor
             % für die SOC berechnungen von unbekannten Strecken sein)
             % Der Faktor Ks berücksichtigt den SOC dabei nur in
             % Abhängikeit der Weglänge aber jedoch nicht die zu
             % überwindenden Steigungen auf einer Strecke diese soll mit
             % einem weiteren Faktor Kh berücksichtigt werden.
             index=1
             for k=index:length(dSOC_Segment_Data(:,1));
               
                 if segmentlaenge==length(dSOC_Segment_Data(:,1));
                    segmentlaenge=Reichweite-(dSOC_Segment_Data(k,1));
                 else
                    segmentlaenge=(dSOC_Segment_Data(k+1,1)-(dSOC_Segment_Data(k,1)));
                 end
             end
             %Ermittlung Segmentlaenge
             %Segmentlaenge=dSOC_Speicherung(i,8);
  save segmentlaenge segmentlaenge
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.09.2011, 12:28     Titel:
  Antworten mit Zitat      
Hallio Überfordert,

Die Fehlermeldung bedeutet, dass Du die Funktion ohne Parameter aufrufst. Es wird aber ein Input benötigt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Überfordert

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.09.2011, 15:12     Titel:
  Antworten mit Zitat      
Ok wie kann ich denn jetzt den Input definieren? die daten liegen eigentlich in der workspace dSOC_Segment_Data wie verkünpfe ich das am besten in die Funktion das die dort auch meine Daten auslesen kann?
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.09.2011, 19:03     Titel:
  Antworten mit Zitat      
Der Funktionsaufruf wäre dann im Command Window oder einem anderen m-file so...oder wie auch immer dein Datenvektor in den Klammern heißt.

Code:
segmentlaenge = bsegmentlaenge(dSOC_Segment_Data)


Das 'save segmentlaenge' innerhalb der Funktion ist doch eigentlich auch überflüssig, wenn es als Rückgabewert der Funktion definiert ist.
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 - 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.