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

zeitachse die 10tausendste

 

boer640
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.03.09
Wohnort: Magdeburg
Version: 2008b
     Beitrag Verfasst am: 26.03.2009, 16:43     Titel: zeitachse die 10tausendste
  Antworten mit Zitat      
Hallo Forum,
ich lese in einem Programm eine Excel Tabelle ein. In einem Unterprogramm berechen ich dann ein paar Sachen und lasse sie mir darstellen. Die figure hab ich jetzt so:
Code:


figure;
          title(['SPE',X_text]);
          line (1:num_row_X,SPE);

 


So zeigt mir die Graphik den Wert SPE von 1 bis zur letzten Zeile der Exceldatei. Ich will aber die Zeit unten stehen haben. Die Excel-Dateien sind unterschiedlich lang und fangen zu unterschiedlichen Zeiten an. Wie bekomm ich das hin?
kann ich einfach 1 und num_row_X durch time_a1 und time_ax ersetzen, wenn ich oben time_a1 und time_ax definiere?
wenn ja, wie muss ich ausdrücken, dass time_a1 in zelle a1 der matrix X steht und time_ax in der ersten Spalte der letzten zeile mit werten?
welchen befehl nehm ich? datestr? datenum? datevec? ich blick da nicht so richtig durch, was ich da nehmen muss.

Vielen Dank im Vorraus
Private Nachricht senden Benutzer-Profile anzeigen


boer640
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.03.09
Wohnort: Magdeburg
Version: 2008b
     Beitrag Verfasst am: 28.03.2009, 22:23     Titel:
  Antworten mit Zitat      
wie jetzt, das weiß keiner?
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 30.03.2009, 11:19     Titel:
  Antworten mit Zitat      
Hallo boer640,

Nichtwissen ist nicht immer der einzige Grund für Nichtantworten... Vielleicht hilft Dir ja dieses Beispiel:

Code:
r = rand(1,10);
dates={'1.8.1900';'1.7.1922';'1.4.1946';'1.5.1955';'1.8.1976';...
'1.12.1982';'1.1.1984';'1.6.1999';'1.5.2001';'1.2.2010'};
numdates=datenum(dates,'dd.mm.yyyy');
plot(1:10,r);
figure,plot(numdates,r);
datetick('x','yyyy')


Ansonsten wäre es hilfreich zu wissen, in welchem Format time_a1 und time_ax vorliegen. Außerdem, ob Deine Daten gleichmäßig verteilt sind (nicht so wie in meinem Beispiel oben, sondern für jeden Tag oder jeden Monat ein Wert). Vielleicht gibst Du einfach mal kleine Beipielmatrizen X und SPE an. Oder ist X ein cell array?

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
boer640
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.03.09
Wohnort: Magdeburg
Version: 2008b
     Beitrag Verfasst am: 30.03.2009, 11:41     Titel:
  Antworten mit Zitat      
hallo bijick,
bei der Exceltabelle handelt es sich um Sensordaten. in spalte 1 liegen die Zeiten vor als: 'dd.mm.yyy HH:MM:SS:FFF'. und je nachdem wieviel Daten ich einlese, oder wieviel Daten gesammelt wurden, sind das bis zu 3000 Zeilen an einem Tag. steht die Maschine mal still, sind es entsprechend weniger Daten. So, wie ich die Figur jetzt anzeige steht bei den Achsen 0 bis 3000. Da soll aber die Zeit rein, die in der ersten Spalte steht, die beginnt unterschiedlich und der Abstand ist auch nicht gleich. SPE wird aus den unten stehenden Daten errechnet.
Das mit dem cell-array hab ich auch noch nicht verstanden. Embarassed
War meine Frage zu unverständlich oder zu allgemein formuliert, dass keiner geantwortet hat?


04.01.2009 03:00:06.437 67 66 67 67 62 66 58 55 90 36 66 60 417 2,473301649 2,374366283 2,473301649 3,210236311 1,223629355 12,98332882
04.01.2009 03:00:36.875 67 67 67 67 62 66 58 55 90 36 66 61 422 3,249665737 2,787699938 3,249665737 3,494713068 1,399368882 13,10793114
04.01.2009 03:01:07.375 68 69 68 68 62 66 58 55 90 36 66 61 429 3,029823065 2,60046649 3,029823065 2,940090179 1,407935739 13,77158737
04.01.2009 03:01:37.812 66 68 66 66 62 66 58 55 90 36 66 60 427 2,590508699 2,590508699 2,172557592 2,952194214 1,31227994 12,8332634
04.01.2009 03:02:08.312 66 66 66 66 62 66 58 55 90 36 66 61 413 3,049551249 2,718235493 3,049551249 4,210193634 1,324685216 13,16351605
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 30.03.2009, 14:34     Titel:
  Antworten mit Zitat      
Hallo boer640,

Deine Frage war zumindest recht unvollständig. Inzwischen weiß ich schon so ungefähr, was das Problem ist. Zusammen kriegen wir das schon hin. Smile

Hast Du mein Beispiel mal ausgeführt? Soll die Darstellung so wie in der zweiten Grafik sein? Die Datumsangaben können natürlich auch mehr als nur das Jahr enthalten, je nachdem wie Deine Daten so sind.

Welches Datenformat hat denn die Matrix X? Das kriegst Du so heraus:

Code:


Oder (falls das nicht klappen sollte): Die tabelle, die Du angegeben hast, ist doch die Excel-Tabelle und nicht die matrix X, oder? Wie liest Du Excel-Tabelle genau ein? Wie lautet der ganze xlsread-Aufruf? Oder verwendest Du den Import Wizard?

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
boer640
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.03.09
Wohnort: Magdeburg
Version: 2008b
     Beitrag Verfasst am: 30.03.2009, 15:26     Titel:
  Antworten mit Zitat      
ich habs ausprobiert. so ähnlich will ich das haben. Bloß, dass halt die Zeit da steht. Die Matrix X enthält die Zeit nicht. Die steht in der ersten Spalte des Excelblatts. Ich versuchs grad so um die Zeit zu bekommen:

Code:


time=xlsread(FName, sheet, range);
numtime=datenum(time, 'dd.mm.yyyy HH:MM:SS:FFF');

 


weiter unten soll dann das kommen:

Code:


figure
 line(numtime, SPE);
 datetick('x', 'HH:MM');

 


Aber er sagt dann:
The input to DATENUM was not an array of strings. Crying or Very sad
Ich geh mal schnell mit dem Kopf gegen die Wand schlagen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 30.03.2009, 15:55     Titel:
  Antworten mit Zitat      
Hallo boer640,

erstmal ruhig bleiben! Smile

Probier mal

Code:
[num, txt]= xlsread(FName, sheet, range)


Das Datum sollte dann in txt stehen. Warum bei mir dann die Millisekunden verloren gehen, weiß ich grad auch nicht... Wenn Dir Sekunden reichen, käme als nächstes dann

Code:
numtime=datenum(txt, 'dd.mm.yyyy HH:MM:SS');


Klappt's? Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
boer640
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.03.09
Wohnort: Magdeburg
Version: 2008b
     Beitrag Verfasst am: 30.03.2009, 16:53     Titel:
  Antworten mit Zitat      
ja. sehr gut ich danke dir Very Happy das bringt mich schonmal weiter.
jetzt hab ich aber ein anderes Problem. Wie kann ich denn den Range flexibel einstellen? hab jetzt den Range genau von 'A1:A2863' eingestellt, weil in Zeile 2863 der letzte Wert steht. An anderen Tagen hat die Tabelle aber nur 2840 Zeilen. Wenn die Maschine den halben Tag steht nur 1300. Ich hatte es schon mit 'A1:A' und 'A' probiert. Da sagte er immer invalid Range.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 30.03.2009, 17:36     Titel:
  Antworten mit Zitat      
Hallo boer640,

der Doppelpunkt ist nötig. Sieht doof aus, aber so klappt es:
Code:
xlsread(FName,sheet,'A:A')


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
boer640
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 23.03.09
Wohnort: Magdeburg
Version: 2008b
     Beitrag Verfasst am: 31.03.2009, 07:53     Titel:
  Antworten mit Zitat      
Guten Morgen Bijick,
hat geklapppt. Vielen Dank. Aber jetzt hab ich ein neues Problem. Das ist aber mehr ein Verständnisproblem. Vielleicht krieg ich das mit ausreichend Kaffee allein hin. Vielleicht gibts aber auch bald einen neuen Fred.
mfg Thomas
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.