Wie

2012-03-29 12 views
0

in Matlab Daten in Zahlen zu umwandeln habe ich einige Variablen wie diese:
Wie

a(1)=00:26:00 
a(2)=744:32:00 
a(3)=8040:33:00 

Ich möchte, dass sie Zahlen konvertieren, so dass ich den datenum- Befehl.
Die größte Zahl sollte 8040: 33: 00 sein, aber schau, was passiert.

datenum(a([1 2 3])) 

ans = 

1.0e+005 * 

7.3487 
7.3485 
7.3486 

Aber wenn ich berechnen dont eine (1):

datenum(a([2 3])) 

ans = 

1.0e+005 * 

7.3490 
7.3520 

Das ist das Ergebnis, was ich will zu bekommen. Ich denke, das Problem ist, dass a (2) und a (3) mehr als 24 Stunden haben, aber ich habe keine Möglichkeit gefunden, dieses Problem zu lösen.
Danke.

+0

Sie meinen, 'a {1} = '00: 26: 00''? – Memming

Antwort

1

Sie haben uns Ihre tatsächliche Eingabe nicht gegeben. Mit

a(1)=00:26:00 
a(2)=744:32:00 
a(3)=8040:33:00 

bedeutet a enthält drei Nullen. (doc colon erklärt, warum.)

Wenn meine Vermutung, was Sie eigentlich tun richtig ist, sollten Sie in der Lage sein

cellfun(@datenum, a) 

Ich habe nicht tief zu verwenden, aber das Verhalten sieht ein bisschen überraschend, in der Tat. Möglicherweise möchten Sie den MathWorks Support kontaktieren und einen Fehlerbericht einreichen.

+0

Gelöst. Christopher Creutzig hatte Recht. Mit der Funktion cellfun funktioniert es perfekt. Vielen Dank. – user1297712