2014-01-14 28 views
0

我想將格式爲mm/dd/yyyy的單元格中的日期列轉換爲2007年10月10日的格式,或者使用double數字月,10/10/2007)到yyyy-mm-dd,並繪製它。所以我需要將mm/dd/yyyy轉換爲序列日期編號。將mm/dd/yyyy轉換爲可用於datenum的形式MATLAB

當日期欄已經在形式YYYY-MM-DD,下面的代碼工作:

DateString = PM25data(:,11); % Pull out dates 
    formatIn = 'yyyy-mm-dd'; 
    x1 = datenum(DateString,formatIn); % Convert to datnum 

然而,由於這裏的日期形式爲mm /日/年(例如,4/2007年12月),我不能讓上面的格式錯誤的工作

DATENUM failed. 

Caused by: 
    Error using dtstr2dtnummx 
    Failed on converting date string to 
    date number. 

我也試過這個代碼:

DateString = PM25data(2:end,1); 
    formatOut = 'yyyy-mm-dd'; 
    x4 = datenum(DateString, formatOut); % Convert to datnum 

但我t運行此錯誤:

Cannot convert input into specified date 
string. 
DATENUM failed. 

我該如何獲得datenum在這種情況下工作?

+0

你嘗試過:'datenum(Da​​teString, 'MM/DD/YYYY')' – Amro

+0

哦,那個工作。謝謝。我很確定我嘗試將formatIn設置爲'mm/dd/yyyy',但它不起作用,但是我猜測我在嘗試時出錯了。 – shizishan

回答

2

格式'mm/dd/yyyy'只是格式23的datenum。所以:

>> string = '4/12/2007'; 
>> datenum(string,23) 
ans = 
     733144 

或定義格式明確:

>> string = '4/12/2007'; 
>> datenum(string,'mm/dd/yyyy') 
ans = 
     733144 
+0

謝謝!但是我在哪裏可以知道哪些代碼與哪種格式相關?你在哪裏看到它是格式23?幫助datenum沒有告訴我。 – shizishan

+2

@shizishan:由於某些原因,它們只在'datestr'文檔頁面中列出:http://www.mathworks.com/help/matlab/ref/datestr.html#inputarg_formatOut – Amro