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

funktion läuft nicht

 

Loser
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 05.09.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 19.09.2015, 12:00     Titel: funktion läuft nicht
  Antworten mit Zitat      
Hallo,

ich scheitere leider gerade schon daran eine einfache Funktion zu basteln. Ich habe das script Datenaufbreitung_1a. das alleine ohne Probleme läuft, wenn ich aber aus dem script eine Funktion machen möchte und das ganze über MS_HA1 ausführe, erscheint Daten zwar im workspace aber ist leer.

Code:
function[tag] = Datenaufbereitung_1a(ausgangsdatei)
%pfad des Datensatzes
%pfad = fullfile(ausgangsordner,ausgangsdatei);


data = importdata(ausgangsdatei);


tagbestimmung(:,1)=data.data(:,3);              %Datumsinhalt der Urpsrungsmatrix in tagbestimmung auflisten
tagbestimmung(:,2)=data.data(:,4);
tagbestimmung(:,3)=data.data(:,5);

tagesanzahlzeilen=unique(tagbestimmung,'rows'); %Ermitttlen aller Tage die in der Ursprungsmatrix vorhanden sind,
                                                %indem überprüft wird, ob
                                                %Jahr, Monat und Tag in einer Zeile gleich sind.
                                                %Die Tage mit dem jeweiligen Datum werden in
                                                %'tagesanzahlzeilen' gespeichert.
tagesanzahl=size(tagesanzahlzeilen,1);          %Ermitteln der Tagesanzahl

wanntagzuende=zeros(tagesanzahl,1);             %Initialisierung der Matrix 'wanntagzuende' zur Optimierung der nachfolgenden Schleife
z=1;
while (z <= length(tagesanzahlzeilen(:,1)))     %Erstellen einer Matrix 'wanntagzuende', in der aufgelistet ist, in welcher Zeile der Ursprungsmatrix ein Tag beendet wird
    wanntagzuende(z,1)=find(tagbestimmung(:,1)==tagesanzahlzeilen(z,1) & tagbestimmung(:,2)==tagesanzahlzeilen(z,2) & tagbestimmung(:,3)==tagesanzahlzeilen(z,3),1,'last');
                                                %Es werden einzelne Einträge erstellt,
                                                %in denen jeweils die die letzte Zeile in der Urprungstabelle ermittlet
                                                %wird in denen Jahr, Monat
                                                %und Tag gleich sind.
    z=z+1;                                      %Springen zum nächsten Tag
end


t=1;
i=1;
while (t <= tagesanzahl)                        %In dieser Schleife werden die Dateien erzeugt, in denen die Fahrdaten der einzelnen Tage hinterlegt werden.
    tag=(data.data((i:wanntagzuende(t,1)),:));  %Es wird in 'tag' aus der Urprungstabelle eine Matrix erstellt, die die Fahrdaten für einen Tag enthält.
    fileID = fopen([int2str(tagesanzahlzeilen(t,1)) '-' int2str(tagesanzahlzeilen(t,2)) '-' int2str(tagesanzahlzeilen(t,3)) '.txt'],'w'); %Erzeugung einer .txt Datei mit Benennung [YYYY-MM-DD]
    fprintf(fileID,'%6s %6s %6s %6s %12s\n',char(data.textdata(1,1)),char(data.textdata(1,2)),char(data.textdata(1,3)),char(data.textdata(1,4)),char(data.textdata(1,5))); %Header
    fprintf(fileID,'%10.2f \t %8.2f \t %d \t %d \t %d\n',tag'); %Einfügen der Matrix 'tag' in die .txt Datei
    fclose(fileID);
    i=wanntagzuende(t,1)+1;                     %Springen in Anfangszeile der Ursprungstabelle des ersten Tages
    t=t+1;                                      %Springen in nächsten Tag
end
end
 


MS_HA1.m:
Code:
%% Hausaufgabe 1
clear;
clc;
%% grundlegende Einstellungen
%---------------------------

ausgangsordner = 'Fahrdaten';  %Ordner des zu lesenden Datensatzes
ausgangsdatei = 'Fahrdaten.txt';   %Dateiname des Datensatzes
%ausgabeordner = 'Verbrauch_BEV/Zyklen';      %Ordnername zur Ausgabe (wird ggf. erstellt)

%% Datei auslesen
Daten = Datenaufbereitung_1a(ausgangsdatei);

disp(Daten)


Kann mir jemand sagen woran das liegt?

MS_HA1.m
 Beschreibung:

Download
 Dateiname:  MS_HA1.m
 Dateigröße:  533 Bytes
 Heruntergeladen:  298 mal
Fahrdaten.txt
 Beschreibung:

Download
 Dateiname:  Fahrdaten.txt
 Dateigröße:  3.09 KB
 Heruntergeladen:  288 mal
Datenaufbereitung_1a.m
 Beschreibung:

Download
 Dateiname:  Datenaufbereitung_1a.m
 Dateigröße:  2.79 KB
 Heruntergeladen:  255 mal


Zuletzt bearbeitet von Loser am 19.09.2015, 13:12, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.09.2015, 12:58     Titel:
  Antworten mit Zitat      
Hallo,

ich kann da auch nur empfehlen, mal den Debugger drüberlaufen zu lassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Loser
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 05.09.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 19.09.2015, 13:16     Titel:
  Antworten mit Zitat      
Ich bin leider noch ein blutiger Anfänger. Was genau ist der Debugger? Ich habe es versucht zu googeln aber bin zu keinem Ergebnis gekommen.

irgendwie läuft Datenaufbereitung_1a trotz des Aufrufs in MS_HA1.m nicht durch. Die variablen erscheinen nicht im workspace.

eigentlich muss ich data übergeben aber das funktioniert irgenwie nicht. Kann man importdata nicht in einer Funktion verwenden?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.09.2015, 14:39     Titel:
  Antworten mit Zitat      
Hallo,

zum Thema Debuggen:
http://de.mathworks.com/help/matlab.....process-and-features.html

Zitat:
Die variablen erscheinen nicht im workspace.

Wieso "die Variablen"? Die einzige Variable, die nach Abschluss der Funktion im Workspace sein kann, ist tag unter dem Namen Daten , denn diese Variable ist die einzige, die zurückgegeben wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Loser
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 05.09.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 26.09.2015, 18:05     Titel:
  Antworten mit Zitat      
Danke Harald!
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.