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

Einteilung der Zeitachse

 

Peeet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2011, 21:15     Titel: Einteilung der Zeitachse
  Antworten mit Zitat      
Hallo Matlab-Freunde,

ich möchte mit Matlab Messwerte grafisch darstellen. Gegeben sind Daten aus dem Straßenverkehr (Geschwindigkeit, Datum, Uhrzeit, etc).
Es soll die Verkehrsdichte pro Stunde als Funktion der Zeit dargestellt werden.

Mein Problem ist nun, dass ich zwar die Verkehrsdichte pro Stunde berechnen kann, jedoch nicht die richtige Zeitachsendarstellung, da nicht kontinuierlich Werte aufgenommen wurden, sondern immer nur dann wenn ein Fahrzeug vorbeifährt. Ich habe also eine unterschiedliche Anzahl von Messwerten pro Stunde, möchte die aber möglichst linear auf der Zeitachse darstellen.

Die Werte der Verkehrsdichte und Positionen in der eingelesenen Matrix habe ich wie folgt berechnet:
Code:

clear
close all

fid=fopen(bla.txt');

data=textscan(fid,'%f %s %s %f %f','HeaderLines',6);
laenge=data{5}; %laenge des Fahrzeugs
rows2delete=find(laenge>=7); %LKWs werden nicht berücksichtigt
laenge(rows2delete)=[];      %also werden diese Daten gelöscht

kmh=data{1};                    %auslesen der Geschwindigkeit
kmh(rows2delete)=[];

uhrzeit=datenum(data{2}, 'HH:MM:SS'); %Auslesen der Uhrzeit
uhrzeit(rows2delete)=[];

datum=datenum(data{3}, 'dd.mm.yy');     %Auslesen des Datums
datum(rows2delete)=[];

richtung=data{4};                       %Richtungsangeben (unwichtig)
richtung(rows2delete)=[];

datum_h=datevec(datum,'dd.mm.yy');      
datum_h=datum_h(:,1:3);
uhrzeit_h=datevec(uhrzeit,'HH:MM:SS');
uhrzeit_h=uhrzeit_h(:,4:6);

Jahr=datum_h(:,1);
Monat=datum_h(:,2);
Tag=datum_h(:,3);

Stunde=uhrzeit_h(:,1);
Minute=uhrzeit_h(:,2);
Sekunde=uhrzeit_h(:,3);

 for day=1:31;
    % Bestimmung der Länge und Position des Tages
   
    position_Tage{day}=find(Tag==day);  %Positionen in Matrix bestimmen
   
    for hours=1:24;
% Berechnen der Verkehrsdichte und Position der Stunden
        quantity_Stunden(hours,day)=sum(Stunde(position_Tage{day})==hours-1);
       
         position_Stunden{hours,day}=find(Stunde(position_Tage{day})==hours-1);
    end;
   
end;
% Matrix in Vektor
quantity_Stunden=quantity_Stunden(:);

figure(1)
xdate=datenum(Jahr,Monat,Tag,Stunde,Minute,Sekunde);
plot(xdate,quantity_Stunden)
datetick('x','dd','keepticks')

 

Der Plot funktioniert nicht, da ich wesentlich mehr werte in xdate habe als Gemittelte. Der Verlauf lässt sich bei auslassen von xdate plotten, jedoch stimmt, wie gesagt, die achsenskalierung nicht...

Zusätzlich lass ich noch die Positionen in der Matrix berechnen. Hatte gedacht, dass es später hilfreich sein könnte...


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.12.2011, 22:48     Titel:
  Antworten mit Zitat      
Hallo,

ich zumindest verstehe nur Bahnhof. Ausführbar ist der Code ja nun nicht, da wir deine Daten nicht haben. Und auch aus der Problembeschreibung werde ich nicht schlau. Kannst du vielleicht einen Screenshot anhängen und anhanddessen das Problem beschreiben?

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2011, 01:00     Titel:
  Antworten mit Zitat      
Hallo,

ich gebe zu, dass es sein könnte etwas kompliziert geschrieben zu haben Smile

Geplottet über
Code:
plot(quantity_Stunden)
sieht das Bild so aus:



Uploaded with ImageShack.us

Ich wollte die Tageswechsel an den Tiefpunkten darstellen. Habe es nun aber über eine Extrema Berechnung erledigt.

Wollte es erst genauer über die datestr und datetick funktion machen...

Ist also vom Tisch das Thema Wink
 
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.