2017年數(shù)學(xué)建模講座-文件18第講matlab數(shù)據(jù)處理_第1頁
2017年數(shù)學(xué)建模講座-文件18第講matlab數(shù)據(jù)處理_第2頁
2017年數(shù)學(xué)建模講座-文件18第講matlab數(shù)據(jù)處理_第3頁
2017年數(shù)學(xué)建模講座-文件18第講matlab數(shù)據(jù)處理_第4頁
2017年數(shù)學(xué)建模講座-文件18第講matlab數(shù)據(jù)處理_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第18 的數(shù)據(jù)處 胞數(shù)組(元胞數(shù)組,函數(shù)句柄,Java對象,邏輯類型等.數(shù)值類型包括雙精度浮點(diǎn)型,單精度浮點(diǎn)型,整型類型.下面簡單介紹細(xì)胞 中的一類特殊的數(shù)組.在 使用cell函數(shù)創(chuàng)建空細(xì)胞數(shù)組例 clcclear A={'x',[2;3;6];10,2*pi} 18.1細(xì)胞數(shù)組的有關(guān)函 例 clc,a={12345;9678;1011 try,d=cell2mat(c),catch,fprintf('維數(shù)不匹配,無法轉(zhuǎn)換!'),end %生成取值為{1,2,…,9}的4×5隨機(jī)整數(shù)矩陣 %將e拆分成2×2的細(xì)胞數(shù)組f2={e}e1個元素的細(xì)胞數(shù)組subplot(121),cellplot(f1)%f1結(jié)構(gòu)圖subplot(122),cellplot(f2)%f2結(jié)構(gòu)圖例 注18.2地點(diǎn)名稱及坐標(biāo)數(shù)x坐y坐x坐y坐RST101高12高116高把18.2中的數(shù)據(jù)保存在Excel文件data183.xlsxclc,clear holdon,plot(a([4:end],1),a([4:end],2),'*') 18.1位置示意有時需要將不同的數(shù)據(jù)類型組一個整體,以便于.這些組合在一個整體中的數(shù)據(jù)是相互聯(lián)系的.例如,一個學(xué)生的學(xué)號、、、、成績、家庭地址等與其它高級語言一樣具有結(jié)構(gòu)類型的數(shù)據(jù).結(jié)構(gòu)類型是包含一組彼此相關(guān)、數(shù)據(jù)結(jié)構(gòu)相同但類型不同的數(shù)據(jù)類型.結(jié)構(gòu)類型的變量可以是任意一種數(shù)據(jù)類型的變量,也可以是一維的、二維的或者的.但是,在結(jié)構(gòu)類型數(shù)據(jù)的例 clc,stu(1).name='LiMing';stu(1).number='0101';stu(1).sex='f';stu(1).score=[90,80];stu(2).sex='m';stu(2).score=[88,80];stu%顯示結(jié)構(gòu)數(shù)組的結(jié)構(gòu) 例 clc,clear]% 18.3結(jié)構(gòu)數(shù)組的有關(guān)函 例 clc,clear %獲取第1個元素的number域的值 %獲取第2個元素的number域的值 %判斷sex是否為stu中的域 %刪除sex域例 clc, fields={'name','number','sex','age'}%建立細(xì)胞數(shù)組 可以顯示當(dāng)前下所有后綴名為mf是一個結(jié)構(gòu)數(shù)組,包5個域:name,date,bytes,isdir,datenum;通過結(jié)構(gòu)數(shù)組的元素個數(shù)就可以知道當(dāng)前下mname域可以知道當(dāng)前下所有m文件的例18.8讀入當(dāng)前 clc, 下所有bmp圖像文件的信息,保存在結(jié)構(gòu)數(shù)組f for y'f(t,y),y(t)y, yf可以為向量.函數(shù)ode45[t,y]=ode45(fun,tspan,y0)中自變量的取值,tfinal可以比t0小)是求解區(qū)間,y0是初值.t是自動離散化的區(qū)間t0,tfinal]上的點(diǎn),yts,則s是一個結(jié)構(gòu)數(shù)組.利用結(jié)構(gòu)數(shù)組s和函數(shù)deval,可以計算任何感點(diǎn)x的函數(shù)值))例 求x2y''xy'(x2

0,y2,y'2在區(qū)間

2 2

[2量替換,把上述二階微分方程化成一階方程組,令y1yy2y,則有y'y

y1(2 2y'y2(1 )y,y() 2 clc, y1是兩列的矩陣,y1(:,1對應(yīng)y的y2=deval(s,x2返回值y2是兩行的矩陣,y2(1,:)對應(yīng)y的值,y2(2,:)對應(yīng)y的導(dǎo)數(shù)值subplot(121),plot(x1,y1(:,1)),subplot(122),plot(x2,y2(1,:))%兩種格式比較根據(jù)數(shù)據(jù)的組織形式,中的文件可分為ASCII文件和二進(jìn)制文件..表 作函數(shù)fopen用于打開文件,其調(diào)用格式為:idetfirfoefilename是文件名. fileID為文件句柄,A是要寫入文件的數(shù)組,precision控制所寫數(shù)據(jù)的精度,是下列值:N(N個元素到一個列向量、inf(整個文件、[m,n](讀數(shù)據(jù)到m×n矩陣中,數(shù)據(jù)按列存放;precision控制所讀數(shù)據(jù)的精度.18.10把向量[1,2,…,9]寫入二進(jìn)制文件,然后再讀出來clc, %寫入整數(shù)1,2,…,9 fileID為文件句柄,A1,…,An是要寫入文件的數(shù)組,format控制所寫數(shù)據(jù)從文本文件讀數(shù)據(jù)的函數(shù)為fscanf,其調(diào)用格式為大小的數(shù)據(jù),賦給數(shù)組例 temperature.dat中,然后再其中的數(shù)值數(shù)據(jù).clcclear %新建temperature.dat文件 例18.12把數(shù)據(jù)加上表頭,以表格的形式寫到純文本文件中,然后再其clc,fid1=fopen('exp.txt','w'); %新建純文本文件exp.txtfprintf(fid1,'%6s%12s\r\n','x','exp(x)'); fprintf(fid1,'%6.2f%12.8f\r\n',A);%把矩陣A寫入exp.txt中 %讀入文件數(shù)據(jù)的行,賦給矩陣A');% 例18.13 中clc, 例18.14 把例18.13生成的data1813.mat中的所有數(shù)據(jù)加載到 clc, 注 18.15把矩陣a,b保存到數(shù)據(jù)文件example.mat中,然后重新加載到工作空間中,并計算矩陣a的各列均值.clc,clear 使用命令matfile.可以把word文檔中整行整列的數(shù)據(jù)粘貼到純文本文件,然后調(diào)入到 例18.16純文本文件data1816中存放如下格式的數(shù)據(jù),把數(shù)據(jù)讀 7data1816.txt是用記事本把上述數(shù)據(jù)保存到的當(dāng)前工作路徑下.以下所有操作的數(shù)據(jù)文件必須放在的當(dāng)前工作路徑下,也就是說程序文件和數(shù)據(jù)文件要放在同一個下.例18.17 純文本文件data1817.txt中存放如下格式的數(shù)據(jù),把其中的數(shù)據(jù)讀入A4953858252197433767392712395726555228 6267425949538582522712395726555228143 例 純文本文件data1819.txt存放如下數(shù)據(jù),讀入其中的數(shù)據(jù)clc,fidfopen('data1819.txt');)%A=textscan(fidsfffff%fCollectOutputtrue)讀數(shù)據(jù),A為1×2 例 純文本文件data1820.txt存放如下數(shù)據(jù),讀入其中的數(shù)據(jù).Sally09/12/200512.3445YesLarry10/12/200534.5654Tommy11/12/200567.8923clc,clearA1=textscan(fid,'%s%s%f%d%s') frewind(fid)%移動文件位置指示器到文件頭,重新讀入數(shù)據(jù)據(jù) 例 clc,format='%s%n%s%8.2f%8.2f%8.2f%8.2f%u8';while注18.1 沒有構(gòu)造大數(shù)據(jù)文件largefile.txt和函數(shù)process_data,當(dāng)然程序是無法 例 純文本文件data1822.txtclc,fid=c=textscan(fid,*sv1=%fv2=%fv3=%f*sDelimiternCollectOutputtrue)c=cell2mat(c)%把細(xì)胞數(shù)組轉(zhuǎn)換成數(shù)值矩陣?yán)?例 18.25生成服從標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù)的100200fprintf命令保存clc,clear識別,純文本文件必須用fprintf構(gòu)造,而且數(shù)據(jù)之間的分割符為“\n”.另外,數(shù)據(jù)是逐列存貯的,Lingo數(shù)據(jù)是逐行的,這里把a(bǔ)矩陣的轉(zhuǎn)置矩陣a'讀入Excel文件令是xlsread,使用格式為18.26Exceldata1826.xlsSheet1的域“A2:D5”a,表單Sheet2中的全部數(shù)據(jù)賦給b.注18.2要運(yùn)行該程序, 例 把Excel文件data1827.xls中的所有表單數(shù)據(jù)全部讀入xlswrite(filename,A,sheet,Range)filename是要寫入數(shù)據(jù)的文件名,A是要寫入的矩陣,sheet是表單名,Range是例 把一個510矩陣a寫到Excel文件data1828.xls表單Sheet1中,把一 )%18.29a、c、g、t出現(xiàn)的頻數(shù) clc,clearwhile(~feof(fid)) f,例 .96次狀態(tài)轉(zhuǎn)移中,0001,10,11” 下.編寫程序如下:whileforfor 00,8次 01,18次10,18次 11,52次 Orangesandlemons,Pineapplesandtea.Orangutansandmonkeys,Dragonflysorfleas.程序如下clcclearstr0='an';str=[];while18.32bmp圖像文件data1832.bmpjpg文件,data1832.jpg,并顯示.subplot(121),imshow(a),title('原bmp圖像')%顯示原bmp圖像例 clc,clear 例18.34時間序列數(shù)據(jù)的處理. %從今天到后面5天 %生長fints格式數(shù)據(jù) %將第3個數(shù)據(jù)變?yōu)槿笔е礜aNdata=fts2mat(newdata)%把時間序列數(shù)據(jù)轉(zhuǎn)換成矩陣?yán)?對 作n=length(tf);%計算純文本文件的個數(shù) fortp1=ascii2fts(tf(i).name);%讀入新的時間序列數(shù)據(jù)tp2=extfield(tp1,{'series2','series3'});%提出第2和第3字段str1=['series',num2str(2*i)];str2=['series',num2str(2*i+1)];;%注 eomday,weekday,addtodate,etime等,這里就不一一說明各個函數(shù)的用法了,下面例18.36統(tǒng)計 年月到 注 中weekday的1對應(yīng)“星期日”,2對應(yīng)“星期一”,…,7對應(yīng)“星六 clc,clearforforc,bar(c) axis([08680690])

18.2頻數(shù)分布的柱狀除了支持各種圖像文件的讀寫等操作,還支持文件的相應(yīng)處理.實(shí)例18.37一個文件test.avi,并把中的每一幀保存成jpg文件 for str=['source\',int2str(i),'.jpg'];%構(gòu)造文件名的字符串, imwrite(a,str);%把第i幀保存到j(luò)pg文件Format-的類型,如 read(obj read(obj1 read(obj read(obj50Inf]);%50audiowrite函數(shù),聲音文件的audioplayer和play函數(shù),讀聲音文件信息的函數(shù)audioinfo函數(shù).例18.38聲音文件讀寫、示例clc,audiowrite('myfile.wav',y,Fs)%寫聲音文件 [y2,Fs2]=audioread('myfile.wav');%讀入聲音文件player=audioplayer(y2,Fs2);%生成對象 importdatatextscan讀入數(shù)據(jù),可以使用fscanf命令讀入數(shù)據(jù).例 clc,clearN=fscanf(fid,'%*s%*s\nN=%d\n\n',1) m=4;n=3;%一個觀測的行數(shù)和列數(shù)fork=1:N ,fclose(fid);%關(guān)閉文件句柄 clc,clearwhileif~isempty(str)md(block).mdate=fscanf(fids1讀入一行字符串md(block).meas=fscanf(fid,'%f',[n,m讀入矩陣數(shù)據(jù)%例 clc, fork=1:nmydata1{k}=impor

溫馨提示

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

評論

0/150

提交評論