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

Zeitangabe auf der X-Achse

 

DrMaex
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2008, 13:09     Titel: Zeitangabe auf der X-Achse
  Antworten mit Zitat      
Hallo, ich hoffe ihr könnt mir helfen.
ich habe folgende Probleme Smile
das erste ist ,dass ich mich erst ca zwei Wochen richtig mit Matlab beschäftige
daraus resultiert sich das zweite problem:
ich will ein kleines script schreiben welches eine von LabView erzeugte Textdatei einliesst und mit die Werte plottet. habe bis jetzt auch fast alles geschafft bis auf lesbare(aussagekräftigere) beschriftung der x-Achse.

die Aufgabenstellung:
labview kann die Werte in Unterschiedlichen zeitabständen aufnehmen.

(anzahl der abtastpunkte*zeit in sekunden dazwischen)=gesamtdauer der messung

wenn ich meinen temperaturverlauf einfach so plotte ist das ergebnis ja über abtastpunkte aufgetragen, da daraus nicht sofort ersichtlich ist wie lange die messung dauerte, möchte ich unten auf der x-Achse einfach die zeitangabe plazieren im HH:MM:SS format. nur wie bewerksteluge ich das?
meine letzte station bis jetzt ist dass ein eine nx3 matrix erstellt habe die die uhrzeit umrechnet nur wie geht es weiter??
habe hier im Forum ein paar Hinweise auf datetick gesehen (mit Xticklabel sollte es eigentlich auch gehen oder?? wo ist da der unterschied) aber ich weiss nicht wie man datetick datenum datestr und datevek hier einbauen könnte

hier ist der code mit dem ich versuche nur die anzeige eines zufälligen verlauft zu erstellen mit der richtigen achsenbeschriftung
Code:

clc
clear

dauersek=input('Zeit in Sekunden?: ');%gesamtdauer in sekunden

zufall=rand(1,dauersek) %einfach ein zufälliger verlauf

zeitvektor=zeros(dauersek,3);

stunden=0;
minuten=0;
sekunden=0;


for i=0:dauersek-1
   
    if sekunden==60
        minuten=minuten+1;
        sekunden=0;
    end
   
    if minuten==60
        stunden=stunden+1;
        minuten=0;
    end

    zeitvektor(i+1,1)=stunden;
    zeitvektor(i+1,2)=minuten;
    zeitvektor(i+1,3)=sekunden;
    sekunden=sekunden+1;
end

plot(zufall)
 


wie kann ich den zeitvektor verwerten? gibt es da vielleicht eine andere Lösung?
habe daran gedacht die matrix in text umzuwandeln mit ':' statt dem leerzeichen und dann als xticklabel, habe es aber auch nicht bewerkstelligen können.... Embarassed
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 10.04.2008, 14:07     Titel: Re: Zeitangabe auf der X-Achse
  Antworten mit Zitat      
DrMaex hat Folgendes geschrieben:

wie kann ich den zeitvektor verwerten? gibt es da vielleicht eine andere Lösung?
habe daran gedacht die matrix in text umzuwandeln mit ':' statt dem leerzeichen und dann als xticklabel, habe es aber auch nicht bewerkstelligen können.... Embarassed


Hi,

ich habe mal Dein Beispiel dementsprechend geändert:
Code:

clc
clear

%dauersek=input('Zeit in Sekunden?: ');%gesamtdauer in sekunden
dauersek=600;

zufall=rand(1,dauersek); %einfach ein zufälliger verlauf

zeitvektor=zeros(dauersek,3);

stunden=0;
minuten=0;
sekunden=0;

zeit=cell(1,dauersek);
for i=0:dauersek-1
   
    if sekunden==60
        minuten=minuten+1;
        sekunden=0;
    end
   
    if minuten==60
        stunden=stunden+1;
        minuten=0;
    end

    zeitvektor(i+1,1)=stunden;
    zeitvektor(i+1,2)=minuten;
    zeitvektor(i+1,3)=sekunden;
    sekunden=sekunden+1;
    zeit{i+1}=[num2str(zeitvektor(i+1,1)) ':' num2str(zeitvektor(i+1,2)) ':' num2str(zeitvektor(i+1,3))];
end

plot(zufall);
zeitlabel=datestr(zeit,'HH:MM:SS');
int_sec=90;
set(gca,'XTick',1:int_sec:numel(zeitlabel));
set(gca,'XTickLabel',zeitlabel(1:int_sec:end,:));

Das müsste aber noch eleganter machbar sein...
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DrMaex
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 10.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2008, 14:38     Titel:
  Antworten mit Zitat      
Vielen Dank! zumindest im kleinen Script funkioniert alles so wie ich es mir vorgestellt hatte.Von allein wäre ich nie auf den code gekommen!! werde jetzt mal versuchen die variablen so anzupassen dass die untere achse auch bei längeren Messungen (>=24h) lesbar ist. aber das macht dann etwas mehr spass als total im dunkeln zu tasten. vielen dank nochmal
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.