第3章matlab與excel數(shù)據(jù)連結(jié)及繪圖_第1頁(yè)
第3章matlab與excel數(shù)據(jù)連結(jié)及繪圖_第2頁(yè)
第3章matlab與excel數(shù)據(jù)連結(jié)及繪圖_第3頁(yè)
第3章matlab與excel數(shù)據(jù)連結(jié)及繪圖_第4頁(yè)
第3章matlab與excel數(shù)據(jù)連結(jié)及繪圖_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

金融數(shù)值計(jì)算與應(yīng)用軟件

--MATLAB王輝中央財(cái)經(jīng)大學(xué)金融學(xué)院E-mail:Tel:第3章MATLAB與Excel數(shù)據(jù)連接及繪圖3.1MATLAB與Excel數(shù)據(jù)連接3.1.1MATLAB和Excel的接口安裝:.ExcelLink的安裝和和設(shè)置ExcelLink的設(shè)置

啟動(dòng)Excel,選擇菜單“工具”項(xiàng)下的“加載宏”項(xiàng),彈出如下對(duì)話框若該項(xiàng)不存在,則通過(guò)瀏覽目錄,在目錄

MATLAB/toolbox/exlink下找到

excllink.xla文件在Excel中多了一個(gè)ExcelLink工具條,如下圖示:3.1.2.ExcelLink管理函數(shù)

手動(dòng)啟動(dòng)matlab

要不想在每次啟動(dòng)時(shí)都啟動(dòng)matlab,則可以在電子表格中或函數(shù)輸入框中輸入以下命令=MLAutoStart(“no”)手動(dòng)啟動(dòng)matlab(1)在excel電子表格中輸入命令=MLOpen()(2)利用excel的宏工具,在宏對(duì)話框中輸入Matlabinit,然后單擊執(zhí)行按鈕。

(3)按左上按鈕"startmatlab"。1、ExcelLink連接管理函數(shù)

(1)Matlabinit

該函數(shù)只能在宏子例程中使用。初始化ExcelLink和啟動(dòng)Matlab進(jìn)程。只有在MLAutoStart函數(shù)中使用“no”參數(shù),才需要手動(dòng)使用Matlabinit來(lái)初始化ExcelLink和啟動(dòng)Matlab進(jìn)程,

如果使用參數(shù)“yes”,則Matlabinit是自動(dòng)執(zhí)行的。

使用語(yǔ)法:Matlabinit

(2)MLAutoStart設(shè)置自動(dòng)啟動(dòng)Matlab和ExcelLink。

在工作表中的使用語(yǔ)法:

MLAutoStart("yes")

MLAutoStart("no")

使用“yes”參數(shù),則當(dāng)Excel啟動(dòng)時(shí),自動(dòng)啟動(dòng)Matlab和ExcelLink;如果使用參數(shù)“no”,則當(dāng)Excel啟動(dòng)時(shí),不啟動(dòng)Matlab和ExcelLink。如果在此之前它們已經(jīng)啟動(dòng),則無(wú)任何影響。

(3)MLClose終止Matlab進(jìn)程并刪除Matlab工作空間的所有變量。并通知Excel,Matlab不再運(yùn)行。

在工作表中的使用語(yǔ)法:

MLClose()

在宏中的使用語(yǔ)法:

MLClose

(4)MLOpen—啟動(dòng)Matlab進(jìn)程如果Matlab進(jìn)程已經(jīng)啟動(dòng),則MLOpen函數(shù)不進(jìn)行任何操作。在使用MLClose關(guān)閉Matlab進(jìn)程后使用MLOpen來(lái)重新啟動(dòng)Matlab。

在工作表中的使用語(yǔ)法:

MLOpen()

在宏中的使用語(yǔ)法:

MLOpen

(3)MLClose終止Matlab進(jìn)程并刪除Matlab工作空間的所有變量。并通知Excel,Matlab不再運(yùn)行。

在工作表中的使用語(yǔ)法:

MLClose()

在宏中的使用語(yǔ)法:

MLClose

Excel時(shí)間與Matlab的轉(zhuǎn)換EXCEL的默認(rèn)日期數(shù)開(kāi)始與1900年1月1日,而MATLAB的日期數(shù)開(kāi)始于0000年1月1日。如果用戶使用MATLAB中的日期數(shù)計(jì)算,常數(shù)693960起關(guān)鍵作用:EXCEL日期數(shù)加上它進(jìn)入MATLAB,或從MATLAB日期數(shù)中減去它進(jìn)入EXCEL

2、ExcelLink數(shù)據(jù)管理函數(shù)

(1)matlabfcn

根據(jù)給定的Excel數(shù)據(jù)執(zhí)行Matlab命令。

在工作表中使用時(shí)的語(yǔ)法:

matlabfcn(command,inputs)=matlabfcn(“sum”,B3:B10);把從B3到B10的單元格中數(shù)據(jù)相加例:在Matlab中生成12維均勻隨機(jī)向量aa,利用matlabfcn在Excel中求其分量之和。(2)Matlabsub根據(jù)給定的Excel數(shù)據(jù)執(zhí)行Matlab命令,并將結(jié)果返回到指定的單元格中。

在工作表中的使用語(yǔ)法:

matlabsub(command,edat,inputs)

例如:=matlabsub(”sum”,”A1”,B1:B10);把工作表中從單元格B1到B10的數(shù)據(jù)相加,并將結(jié)果返回到單元格A1中。

注意:edat指定的位置不能包含matlabsub所在的位置。

(3)MLAppendMatrix將Excel工作表中的數(shù)據(jù)追加到Matlab中指定的矩陣中如果該矩陣不存在,則創(chuàng)建矩陣。

在工作表中使用的語(yǔ)法:

MLAppendMatrix(var_name,mdat)注意要追加的數(shù)據(jù)維數(shù)要和原矩陣中的維數(shù)相匹配,否則出錯(cuò)

假設(shè)matlab中,矩陣a是個(gè)2行3列的矩陣,如下圖:

將Excel表中A1:A2中的數(shù)據(jù)追加到矩陣后,如下圖示成為矩陣的第四列,如下圖示

(4)MLDeleteMatrix

刪除Matlab空間中指定的矩陣

在工作表中使用的語(yǔ)法:

MLDeleteMatrix(var_name);Var_name,是要?jiǎng)h除的矩陣名,如果矩陣名在引號(hào)內(nèi)“var_name”的形式,則直接指定變量名,如果var_name不用引號(hào)引起來(lái),則通過(guò)計(jì)算獲得實(shí)際矩陣的名字。

例如,單元格B1中的內(nèi)容為a,MLDeleteMatrix(B1),則表示刪除Matlab工作空間的矩陣a,它等價(jià)于MLDeleteMatrix(”a”)4.xlswrite與xlsread

MATLAB提供的函數(shù)xlswrite,具有將MATLAB中的數(shù)據(jù)寫(xiě)入EXCEL的功能。MATLAB提供的函數(shù)xlsread,具有將EXCEL中的數(shù)據(jù)讀入MATLAB的功能。xlswrite的調(diào)用方式

xlswrite('filename',M)xlswrite('filename',M,sheet)xlswrite('filename',M,'range')xlswrite('filename',M,sheet,'range')xlswrite的輸入?yún)?shù)filename%EXCEL文件名M%MATLAB工作空間中的大小為m×n的數(shù)組,該數(shù)組可以是字符型的,數(shù)值型的也可以是單元數(shù)組,其中m<65536且n<256sheet%EXCEL中的工作簿range%EXCEL工作簿中的數(shù)據(jù)區(qū)域例如:將一個(gè)向量寫(xiě)入EXCEL文件v.xls,在MATLAB中執(zhí)行如下命令:xlswrite('v',[15-83.90])例3.1.1把元胞數(shù)組d={'Time','Temp';1298;1399;1497}寫(xiě)入到EXCEL文件m.xls的一個(gè)規(guī)定的工作簿當(dāng)中。答案見(jiàn)ex3_1_1.mxlsread的調(diào)用方式

num=xlsread(filename)num=xlsread(filename,-1)num=xlsread(filename,sheet)num=xlsread(filename,'range')num=xlsread(filename,sheet,'range')[num,txt]=xlsread(filename,sheet,'range')xlsread的輸入與輸出參數(shù)輸入?yún)?shù):

filename%EXCEL文件名

sheet%EXCEL中的工作簿名

range%EXCEL工作簿中的數(shù)據(jù)區(qū)域輸出參數(shù):

num%讀入Excel文件數(shù)據(jù)

txt%保存文本內(nèi)容

例3.1.2將m.xls復(fù)制到matlab當(dāng)前工作目錄下,并在matlab命令窗口輸入以下命令:答案見(jiàn)ex3_1_2.m3.2MATLAB繪圖

3.2.1二維數(shù)據(jù)曲線圖1、繪制單根二維曲線plot函數(shù)最簡(jiǎn)單的調(diào)用格式是只包含一個(gè)輸入?yún)?shù):plot(x)在這種情況下,當(dāng)x是實(shí)向量時(shí),以該向量元素的下標(biāo)為橫坐標(biāo),元素值為縱坐標(biāo)畫(huà)出一條連續(xù)曲線,這實(shí)際上是繪制折線圖。plot函數(shù)的基本調(diào)用格式為:

plot(x,y)

其中x和y為長(zhǎng)度相同的向量,分別用于存儲(chǔ)x坐標(biāo)和y坐標(biāo)數(shù)據(jù)。二維繪圖的例子例3.2.1在0≤x≤2

區(qū)間內(nèi),繪制曲線

y=2e-0.5xcos(4πx)答案見(jiàn)ex3_2_1.m例3.2.2假如你的帳戶中有一筆10年的$1000存款,年利率為r,那么10年后你的錢數(shù)與利率的關(guān)系是,畫(huà)出該函數(shù)的圖像。答案見(jiàn)ex3_2_2.m

1、當(dāng)x,y是同維矩陣時(shí),則以x,y對(duì)應(yīng)列元素為橫、縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣列數(shù)。

2、對(duì)只包含一個(gè)輸入?yún)?shù)的plot函數(shù),當(dāng)輸入?yún)?shù)是實(shí)矩陣時(shí),按列繪制每列元素值相對(duì)其下標(biāo)的曲線,曲線條數(shù)等于矩陣的列數(shù)。3、當(dāng)輸入?yún)?shù)是復(fù)數(shù)矩陣時(shí),則按列分別以元素實(shí)部和虛部為橫、縱坐標(biāo)繪制多條曲線。2、繪制多根二維曲線plot函數(shù)的輸入?yún)?shù)是矩陣形式例3.2.3畫(huà)出S&P從2008年1月到2008年10.20開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)和收盤(pán)價(jià)的時(shí)間圖。

(1)橫坐標(biāo)是觀測(cè)個(gè)數(shù),縱坐標(biāo)是價(jià)格,將四種價(jià)格畫(huà)在一幅圖中(2)橫坐標(biāo)是時(shí)間,縱坐標(biāo)是價(jià)格,將四種價(jià)格畫(huà)在一幅圖中(3)橫坐標(biāo)是時(shí)間,縱坐標(biāo)是價(jià)格,畫(huà)出其收盤(pán)價(jià)的時(shí)間圖答案見(jiàn)ex3_2_3.m

調(diào)用格式為:plot(x1,y1,x2,y2,…,xn,yn)(1)當(dāng)輸入?yún)?shù)都為向量時(shí),x1和y1,x2和y2,…,xn和yn分別組成一組向量對(duì),每一組向量對(duì)的長(zhǎng)度可以不同。(2)當(dāng)輸入?yún)?shù)有矩陣形式時(shí),配對(duì)的x,y按對(duì)應(yīng)列元素為橫、縱坐標(biāo)分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。含多個(gè)輸入?yún)?shù)的plot函數(shù)例3.2.4分析下列程序繪制的曲線。x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=[x1;x2;x3]';y=[y1;y2;y3]';plot(x,y,x1,y1-1)

具有兩個(gè)縱坐標(biāo)標(biāo)度的圖形

調(diào)用格式為:

plotyy(x1,y1,x2,y2)其中x1,y1對(duì)應(yīng)一條曲線,x2,y2對(duì)應(yīng)另一條曲線。橫坐標(biāo)的標(biāo)度相同,縱坐標(biāo)有兩個(gè),左縱坐標(biāo)用于x1,y1數(shù)據(jù)對(duì),右縱坐標(biāo)用于x2,y2數(shù)據(jù)對(duì)。

例3.2.5用不同標(biāo)度在同一坐標(biāo)內(nèi)繪制曲線y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。答案見(jiàn)ex3_2_5.m例3.2.6畫(huà)出S&P從2008年1月到2008年10.20收盤(pán)價(jià)及其對(duì)數(shù)收益率的時(shí)間圖。

答案見(jiàn)ex3_2_6.m圖形保持holdon/off命令控制是保持原有圖形還是刷新原有圖形,不帶參數(shù)的hold命令在兩種狀態(tài)之間進(jìn)行切換。例3.2.7采用圖形保持,在同一坐標(biāo)內(nèi)繪制曲線y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。

答案見(jiàn)ex3_2_7.m設(shè)置曲線樣式

plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…)

將按順序分別畫(huà)出由三參數(shù)定Xi,Yi,LineSpeci的線條。其中參數(shù)LineSpeci指明了線條的類型,標(biāo)記符號(hào),和畫(huà)線用的顏色。

例3.2.8采用不同顏色、不同線形以及不同標(biāo)記在同一圖形中畫(huà)出y=cos(x),y=sin(x-

/2)exp{x/100}和y=sin(x-

)的圖像答案見(jiàn)ex3_2_8.m例3.2.9分析如下程序plot(t,sin(2*t),'-mo','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor',[.491.63],'MarkerSize',12)在原來(lái)程序的基礎(chǔ)上plot(mydate,sp08(:,3),'y-*',mydate,sp08(:,3),'m-.')例3.2.10畫(huà)出S&P從2008年1月到2008年10.20最高價(jià)、和最低價(jià)的時(shí)間圖,不同價(jià)格以不同的線形、顏色和標(biāo)記畫(huà)出。圖形標(biāo)注

title(圖形名稱)xlabel(x軸說(shuō)明)ylabel(y軸說(shuō)明)text(x,y,圖形說(shuō)明)legend(圖例1,圖例2,…)例3.2.11用不同顏色及線形畫(huà)出HSI指數(shù)從1990年1月2日到1992年12月31日的收盤(pán)價(jià)和對(duì)數(shù)收益率的1萬(wàn)倍的時(shí)間圖。圖形名稱:HIS收盤(pán)價(jià)和對(duì)數(shù)收益率X軸標(biāo)注:觀測(cè)Y軸標(biāo)注:HIS收盤(pán)價(jià)和對(duì)數(shù)收益率的1萬(wàn)倍圖形說(shuō)明:時(shí)間是1990.1.2-1992.12.31加圖例答案見(jiàn)ex3_2_11.m坐標(biāo)控制

axis([xminxmaxyminymaxzminzmax])axisequal:縱、橫坐標(biāo)軸采用等長(zhǎng)刻度。axissquare:產(chǎn)生正方形坐標(biāo)系(缺省為矩形)。axisauto:使用缺省設(shè)置。axisoff:取消坐標(biāo)軸。axison:顯示坐標(biāo)軸。網(wǎng)格線和邊框給坐標(biāo)加網(wǎng)格線用grid命令來(lái)控制

gridon/off命令控制是畫(huà)還是不畫(huà)網(wǎng)格線,不帶參數(shù)的grid命令在兩種狀態(tài)之間進(jìn)行切換。給坐標(biāo)加邊框用box命令來(lái)控制

boxon/off命令控制是加還是不加邊框線,不帶參數(shù)的box命令在兩種狀態(tài)之間進(jìn)行切換。例3.2.12在同一坐標(biāo)中,可以繪制3個(gè)同心圓,并加坐標(biāo)控制。答案見(jiàn)ex3_2_12.m圖形的可視化編輯MATLAB在圖形窗口中提供了可視化的圖形編輯工具,利用圖形窗口菜單欄或工具欄中的有關(guān)命令可以完成對(duì)窗口中各種圖形對(duì)象的編輯處理。在圖形窗口上有一個(gè)菜單欄和工具欄。菜單欄包含F(xiàn)ile、Edit、View、Insert、Tools、Window和Help共7個(gè)菜單項(xiàng),工具欄包含11個(gè)命令按鈕。利用可視化的圖形編輯工具處理前面的例子圖形窗口的分割

subplot(m,n,p)該函數(shù)將當(dāng)前圖形窗口分成m×n個(gè)繪圖區(qū),即每行n個(gè),共m行,區(qū)號(hào)按行優(yōu)先編號(hào),且選定第p個(gè)區(qū)為當(dāng)前活動(dòng)區(qū)。在每一個(gè)繪圖區(qū)允許以不同的坐標(biāo)系單獨(dú)繪制圖形。期權(quán)的利潤(rùn)函數(shù)Call多頭:L=-Cer(T-t)+max(ST-X,0)Put多頭:L=-Per(T-t)+max(X-ST,0)例3.2.13假設(shè)投資者1和投資者2在3月份分別購(gòu)買了一份12月份到期的歐式看漲期權(quán)和看跌期權(quán),執(zhí)行價(jià)格都是X=100元,看漲期權(quán)價(jià)格C=8元,看跌期權(quán)價(jià)格為6元,無(wú)風(fēng)險(xiǎn)利率為3%,試給出該兩位投資者及其交易對(duì)手的利潤(rùn)函數(shù)并用四幅子圖畫(huà)出利潤(rùn)函數(shù)圖。答案見(jiàn)ex3_2_13.m3.2.2三維圖形

三維曲線

plot3(x1,y1,z1,選項(xiàng)1,x2,y2,z2,選項(xiàng)2,…,xn,yn,zn,選項(xiàng)n)其中每一組x,y,z組成一組曲線的坐標(biāo)參數(shù),選項(xiàng)的定義和plot函數(shù)相同。當(dāng)x,y,z是同維向量時(shí),則x,y,z對(duì)應(yīng)元素構(gòu)成一條三維曲線。當(dāng)x,y,z是同維矩陣時(shí),則以x,y,z對(duì)應(yīng)列元素繪制三維曲線,曲線條數(shù)等于矩陣列數(shù)。例3.2.14繪制三維曲線。程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Linein3-DSpace');xlabel('X');ylabel('Y');zlabel('Z');gridon;

三維曲面

產(chǎn)生三維數(shù)據(jù)

在MATLAB中,利用meshgrid函數(shù)產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標(biāo)矩陣。其格式為:

x=a:d1:b

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論