matlab建模數(shù)據(jù)的導入與導出_第1頁
matlab建模數(shù)據(jù)的導入與導出_第2頁
matlab建模數(shù)據(jù)的導入與導出_第3頁
matlab建模數(shù)據(jù)的導入與導出_第4頁
matlab建模數(shù)據(jù)的導入與導出_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 學好計算機的唯一途徑是 你的編程能力與你在計算機上練習編程所投入的時間成 matlab建模數(shù)據(jù)的導入與導出建模數(shù)據(jù)的導入與導出 普通表格數(shù)據(jù)的讀寫(使用dlmread) 使用textread讀取格式化文本數(shù)據(jù) 使用textscan讀取格式化文本數(shù)據(jù) 圖像數(shù)據(jù)的讀寫 數(shù)據(jù)導出 圖形的復制與保存文本文件文本文件(逗號分隔逗號分隔) :textread, csvread, csvwritematlab數(shù)據(jù)文件的讀寫數(shù)值文件數(shù)值文件(一般分隔一般分隔):dlmread, dlmwrite ,load ,save二進制文件:二進制文件:fopen, fread, fwrite, fclose格式化的文

2、本輸入格式化的文本輸入/輸出:輸出:fscanf, fprintf菜單命令:菜單命令:File Import Data處理函數(shù)處理函數(shù)圖像數(shù)據(jù)的讀寫圖像數(shù)據(jù)的讀寫:imread, imwrite,imshow一、普通表格數(shù)據(jù)的讀寫 如果數(shù)據(jù)量不大,可以直接復制粘貼方式復制到MATLAB中的指定變量。 當數(shù)據(jù)量較大時,先將數(shù)據(jù)復制粘貼到txt文件或m文件并保存為純文本文件,然后在程序中通過函數(shù)dlmread或textread讀取給指定變量。dlmread:讀取有分隔符的ASCII文件到矩陣語法語法M = dlmread(filename)M = dlmread(filename, delimit

3、er)M = dlmread(filename, delimiter, R, C)M = dlmread(filename, delimiter, range)描述M = dlmread(filename) 從由filename指定的具有分割標志的ASCII文件中讀取數(shù)值數(shù)據(jù)。 M = dlmread(filename, delimiter) 這里指定了分隔符。使用t代表制表符tab分隔。注意:當從格式文件推斷分隔符時,連續(xù)的空格符作為一個分隔符對待。但是不同的是, 如果通過分隔符輸入?yún)?shù)指定了分隔符,那么重復的分隔字符將分別作為單獨的分隔符對待。 M = dlmread(filename,

4、delimiter, R, C) R和C指定了數(shù)據(jù)在文件中的左上角位置。R和C的值從0開始。R = 0, C = 0指定了了文件中的第一個值,位于文件的左上角。M = dlmread(filename, delimiter, range) 讀取由range定義的區(qū)域塊的數(shù)值,range = R1 C1 R2 C2 。也可以使用電子表格符號來指定,range = A1.B7.。二、使用textread讀取格式化文本數(shù)據(jù)A,B,C,. = textread(filename,format) 按指定格式format,,從文件filename 中讀取數(shù)據(jù)到變量A,B,C, 直到文件末尾。A,B,C,.

5、 = textread(filename,format,N) 按格式format,讀取N次數(shù)據(jù)給變量A,B,C,例:設文件mydata.dat 內(nèi)容為Sally Level1 12.34 45 YesTom Level2 54.47 68 No 則names, types, x, y, answer = textread(mydata.dat, %s %s %f %d %s, 1) 返回:names = Sally types = Level1 x = 12.34000000000000 y = 45 answer = Yes 而names, types, x, y, answer = tex

6、tread(mydata.dat, %s %s %f %d %s) 返回:names = Sally Tomtypes = Level1 Level2x = 12.3400 54.4700y = 45 68answer = Yes No其中names、 types 、 answer 均為cell數(shù)據(jù)類型。如names1 對應Sally answer2對應No。 x, y 均為double型數(shù)組2009年全國數(shù)模賽B題數(shù)據(jù)的導入 題目: 第一步:現(xiàn)將數(shù)據(jù)復制到記事本中: 第二步:編寫程序,讀取數(shù)據(jù) 第三部:數(shù)據(jù)處理與分析Data.txt三、使用textscan讀取格式化文本數(shù)據(jù) fid=fope

7、n(filename); %打開文件 C = textscan(fid, format, N) ;%根據(jù)格式讀N行,Ci為filename中的第i列 fclose(fid);%關閉文件 例:對前面給定的例:對前面給定的mydata.dat文件文件fid=fid=fopen(mydata.dat);C=textscan(fid,%s %s %f %d %s)fclose(fid);C = 2x1 cell 2x1 cell 2x1 double 2x1 int32 2x1 cell 顯然C為cell數(shù)組。C1保存文件第1列數(shù)據(jù),為2x1 cell數(shù)據(jù)C11為Sally, C12為Tom, C3為

8、文件中的第3列數(shù)據(jù),為2x1 double數(shù)據(jù),所以C3(1)為12.3400, C3(2)為54.4700 類似的方法可以取出其他各列的各個數(shù)據(jù)2000年全國數(shù)模競賽年全國數(shù)模競賽A題題:DNA序列分類序列分類 題目: 數(shù)據(jù)導入: fid=fopen(DNAdata.txt); D = textscan(fid,%s); fclose(fid); 特征提取:統(tǒng)計每條DNA中a、c、t、g四個字符出現(xiàn)的頻率。D1i對應第i條DNA,N=numel(D1)表示DNA總數(shù)使用sum(D1i =g)可以計算出第i條DNA中有多少個字符gfid=fopen(DNAdata.txt);D = texts

9、can(fid,%s); fclose(fid);N=numel(C1);P=zeros(N,4);for i=1:N P(i,1)=mean(D1i=a); P(i,2)=mean(D1i=c); P(i,3)=mean(D1i=t); P(i,4)=mean(D1i=g);end四、圖像數(shù)據(jù)的讀寫四、圖像數(shù)據(jù)的讀寫 讀圖像:讀圖像:I=imread(filename); 顯示圖像:顯示圖像:imshow(I), imshow(I,) , image(X) 寫圖像:寫圖像:imwrite(A,filename,fmt) 批量讀取圖像文件批量讀取圖像文件path=uigetdir(cd);%獲

10、取文件夾路徑if path=0; return; end%沒有打開文件夾,退出files=dir(path *.bmp) ;dir(path *.jpg);%獲取文件夾下指定類型文件,這里假設為bmp和jpg格式文件Num=length(files);%文件總數(shù)for ii=1:Num pic=imread(path files(ii).name);%讀取第讀取第i副圖像副圖像 。end例:2001年A題 :血管的三維重建;五、數(shù)據(jù)導出 save filename varlist 文件格式為mat,只能用load filename 導入 dlmwrite(filename,m):writes matrix m into filename using the “,” as the delimiter. 可用dlmread(filename) 或csvread(filename) 讀取

溫馨提示

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