設定時間軸
ts=datenum('1999-01-01 00:00:00');% 開始時間
tf=datenum('1999-01-01 00:20:00');% 結束時間
y=rand(21,1);% 給你的y值,我這裡隨機給了
t=linspace(ts,tf,21);% 21min為總共的時間
plot(t,y);% 呼叫datetick函數直接產生時間座標
datetick('x','HH:MM','keepticks')
使用Matlab可以方便地繪製時間序列,但是設定時間軸可能會有些困難,特別是次級刻度和標籤位置的設定。因此,使用GMT繪製時間序列可以更方便地繪製次級月標籤。
第一節:時間序列
繪製時間序列,手動調整座標刻度,一年為一個主刻度(main ticks),一月為一個次刻度(minor ticks),並且繪製Y座標的grid。
具體步驟如下:
1、首先是準備好規則資料。如果資料格式是matlab處理和儲存的矩陣格式,使用MATLAB則需要擷取出來時間序列,並儲存為ASCII格式資料。注意此時的數據不帶有時間信息,只是簡單的一列數據而已,我們將在後面添加時間信息。
2、為sigma0資料新增時間列[h2]
這個方法不是固定的,可以自己程式實現,也可以使用已有的簡單程式。注意時間資料的格式是固定的幾種。
如果資料不多的話,可以使用Windows自備的excel來新增。
本範例的最終資料格式如下:第一列是時間,第二列到第四列是sigma0的屬性值,
(time,sigma0Ku,sigma0C,sigma0C-Ku)。
3、GMT繪圖
將三列sigma0的資料放到一幅圖上,即同時繪製三個時間序列,並使用同一個座標系。橫座標為年月,具體設定為:年為大刻度,月為小刻度,界限設定為1993.1.1-2004.12.1。豎座標為sigma0的值,範圍可當已知,設定為0-15。
參考GMT Cookbook中的程序21:
GMT中Time格式需要依照資料的時間格式設定。在GMT的說明文件中可以找到,有格里高利,ISO之類。也要區分輸入的時間格式和輸出的時間格式。
選擇範例21中所使用的時間標準dd-o-yy。 (GMT有細緻的時間設定參數,注意在這一步驟別出錯誤。)
注意:資料檔案中時間序列的日期座標可以和標註的日期座標格式不一樣,但是時間上要一致。
一看就知道是複製的
如果想在symbian中使用jpg或png圖片,則需要用到symbian提供的那個Multimedia ICL庫裡的類別了。其中比較重的是CImageDecoder類,提供了對影像進行解碼的功能。
來看看如何使用它的吧。先定義兩個字符串:
_LIT(KJPEGFile,"C:\\Data\\me.jpg");
_LIT(KJPEGType,"image/jpeg");
使用的程式碼比較簡單,如下所示:
iDec = CImageDecoder::FileNewL(iRFs,KJPEGFile);
iParent->iBkImageMask=new (ELeave) CFbsBitmap();
iParent->iBkImageMask->Create( iDec-> FrameInfo().iOverallSizeInPixels,iDec-> FrameInfo().iFrameDisplayMode );
iDec->Convert( &iStatus, *(iParent->iBkImageMask) );
其中的iDec是CImageDecoder的實例,而iRFs是RFs的實例。而iParent->iBkImageMask則是一個CFbsBitmap物件實例。
也就是說,我們先利用CImageDecorder::FileNewL來開啟一個影像檔案(它會自已判斷影像類型,我們也可以提供給它我們指定的影像類型)。然後這個映像的資訊就保存在iDec->FrameInfo()中了,利用這個資訊可以建立一個CFbsBitmap實例(因為symbian中所有顯示的映像都是這種類型)。最後,呼叫CImageDecorder的非同步函數Convert就可以將影像(jpeg 或png格式的)轉換成CFbsBitmap位圖了。唯一的麻煩是Convert是一個非同步函數,第一個參數是TRequestStatus類型(可以是活動物件的iStatus成員)。
除了CImageDecorder::FileNewL以外還有一個CImageDecorder:;DataNewL也可以用來從一個緩衝區的位元組內容建構出影像數據,只是它第二個參數是TDesC8&類型的aSourceData。
[補充]
別忘了包含頭檔 ImageConversion.h,還有引入庫imageconversion.lib。
可以使用附加參數指定保持原座標軸範圍:
datetick('x','yyyy-mm-dd','keeplimits')如果座標軸的Tick不滿意,可以要維持原有Tick:
datetick('x','yyyy-mm-dd','keepticks')但原來的Tick有可能不適合日期格式,那麼,可以考慮在調用datetick之前,先設定你認為合適的Tick,例如:
DateString = {'06/1/2014';'10/1/2014';'02/1/2015';'06/1/2015'};
formatIn = 'mm/dd/yyyy';
set(gca,'xtick',datenum(DateString,formatIn))
datetick('x','yyyy-mm-dd','keepticks')不過這樣做有點太繁瑣,還不如直接設定TickLabel了。
以上是在MATLAB中如何調整scope的時間軸設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!