2012-10-26 47 views
0

我有一些在Excel中給我的數據,時間格式相當混亂。的拳頭欄是日期時間但不正確HH:MM,第二列是天HH的正確時間:MM:在matlab中的日期時間格式

time = {'01/01/2000 00:00',num2str(2300); 
    '01/01/2000 00:00',num2str(2400); 
    '01/01/2000 00:00',num2str(10); 
    '01/01/2000 00:00',num2str(100)}; 

然而,當時間超過而不是午夜00:10,時間是10,01:00是100.我怎麼能改變這些到正確的格式?即從上面的例子中我想結果是:

time = {'01/01/2000 23:00'; 
    '01/01/2000 24:00'; 
    '01/01/2000 00:10'; 
    '01/01/2000 01:00'}; 

我怎麼能做到這一點?

+1

我會'sprintf'第二列使用寬度說明符,這將預先支持任何缺失的零,然後插入冒號後第二個字符 –

+0

然後當然'strcat'你的兩列 –

+2

澄清AK4749的建議:而不是' num2str(time)',嘗試'sprintf('%02i:%02i',小時,分鐘)' – Junuxx

回答

3

在MATLAB使用sprintf,您可以使用字段寬度說明:

sprintf arguments

其中

字段寬度: 最少字符數進行打印。可以是數字或星號(*)來引用輸入列表中的參數。例如,輸入列表('%12d',intmax)等同於('%* d',12,intmax)。

因此,你的時代應該結束了所有的期待等。「XX:XX」,由添加的sprintf如果它缺少前導零和增加結腸

感謝@Junuxx的確切命令:sprintf('%02i:%02i', hours, minutes)

若要將小時和分鐘分開,您顯然會將時間%100分鐘和整數除以100以獲得小時。

從那裏,你只需strcat或連接["a" "b"]你的兩列來獲得你想要的結果。