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

Zeit aus Exel nach Matlab importieren

 

GastM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2013, 17:01     Titel: Zeit aus Exel nach Matlab importieren
  Antworten mit Zitat      
Hallo Zusammen!

Ich habe folgendes Problem:
Ich möchte eine gestoppte Zeit (im Format Minuten:Sekunden.Millisekunden) aus einer Exelliste in Matlab bringen.

Alle anderen Befehle bzw. Informationen aus der Liste bringe ich ohne Probleme rüber, nur bei dem weiß ich nicht mehr weiter Confused
Der Teil von meinem Code ist folgender:
Code:

output=cell(a, 8);
% Code weggelassen, output ist in einer For-Schleife
output{a,3}=datestr(r(row,2),'HH:MM:SS'); %Tageszeit z.B. 17:45:30
output{a,4}=datestr(r(row+9,1), 'MM:SS.FFF'); %gestoppte Zeit z.B. 1:24.180
 


Die Tageszeit bringe ich ohne Probleme in die Matrix, bei der gestoppten Zeit bringt er mir immer die Fehlermeldung:
??? Error using
DATESTR failed converting date number to date vector. Date number out of range.
Error in
S = dateformverify(dtnumber, dateformstr, islocal);
Error in
data=datestr(r(row+9,1), 'MM:SS.FFF');

Vielen Dank schon mal für die Hilfe!


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.02.2013, 17:29     Titel:
  Antworten mit Zitat      
Hallo,

die Kommentare legen nahe, dass du schon Datumsstrings hast. Warum wendest du darauf dann nochmal datestr an? Das verstehe ich nicht.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.02.2013, 17:37     Titel:
  Antworten mit Zitat      
Hallo,
weil ich das Datum in dem Format in die Zelle in Matlab bringen möchte.
Schreibe ich direkt die gestoppte Zeit in die Zelle (siehe Code), bringt er mir in der Matrix nur "NaN".
Code:

output{a,4}=r(row+9,1);
 


Grüße,
 
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.02.2013, 18:23     Titel:
  Antworten mit Zitat      
Hallo,

wenn du einen numerischen Wert haben möchtest, brauchst du aber datenum statt datestr.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.02.2013, 21:30     Titel:
  Antworten mit Zitat      
Hallo,

Was ist denn der Inhalt von r(row+9,1)? An diesem Detail scheint das Problem doch zu hängen.

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

Gast


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

vielen Dank erstmal für die Hilfe!
Der Inhalt von r(row+9,1) ist eine Zeit in Minutenform (also z.B. 1:23.180, M:SS.FFF).
Diesen Inhalt möchte ich in die Matrix in Matlab bringen, so dass dann die Zelle "output" den Wert in genau dem selben Format besitzt.

Gruß,
 
Harald
Forum-Meister

Forum-Meister


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

wenn ich das richtig verstehe, dann müsstest du die datestr-Sache an sich nur weglassen.
Grundsätzlich ist das entscheidende immer der Datentyp, in dem Informationen vorliegen. Es kann hier z.B. sein, dass r ein Cell Array ist und du um an den Inhalt der Cell zu kommen auch mit {} arbeiten musst.
Am einfachsten wäre das ganze mit reproduzierbarem Code.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 09:50     Titel:
  Antworten mit Zitat      
Hallo,
Ich habe es jetzt so probiert
Code:

output{a,4}=r{row+9,1};
 

Matlab bringt darauf hin die Fehlermeldung, dass es ein non-cell array object ist

Wenn ich es aber so schreibe
Code:

output{a,4}=r(row+9,1);
 

kommt diese Fehlermeldung "Index exceeds matrix dimensions" und in den Zellen in Matlab steht nur "NaN".
 
GastM

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 11:00     Titel:
  Antworten mit Zitat      
Vielen Dank für die Hilfe!

Ich hab das Problem mittlerweile gelöst, es lag daran dass ich durch xlswrite diesen Eintrag schon beim importieren verloren hab Rolling Eyes

Die Lösung ist dann
Code:

output{a,4}=r{row+9,1};
 


Gruß,
 
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.