ch18档案读写内容摘要:

line = fgetl(fid)。 matched = findstr(line, pattern)。 if ~isempty (matched) fprintf(39。 %d: %s \n39。 , line_number,line)。 end line_number = line_number + 1。 end fclose(fid)。 MATLAB 程式設計入門篇:讀寫檔案 result  如欲列出 中包含 39。 matched39。 字串的每一列,可輸入如下: grep(39。 39。 , 39。 matched39。 ) 6: matched = findstr(line, pattern)。 7: if ~isempty (matched)  若要進行更複雜的字串比對  例如要在一個檔案中找出「 b 和 d 中間夾 1至 3個母音」的英文字  請參考本書姊妹作「 MATLAB 程式設計:進階篇」中的第四章「通用運算式」。 MATLAB 程式設計入門篇:讀寫檔案 fscanf  函數 fscanf可對 ascii檔案作更精確的讀取,用法如下:  matrix = fscanf(fid, format)  其中 fid 是欲讀取之檔案的辨識碼  format 是格式指定字串( Format Specifier)  常用的格式指定字串有下列幾種:  %s: 字串  %d: 10進位的整數  %g: 雙倍精準( Doubleprecision) 的浮點數( Floatingpoint Numbers)  其他各種格式指定字串可輸入 help fscanf 來得到詳細的說明 MATLAB 程式設計入門篇:讀寫檔案 Ex:  有一文字檔 如下 : 1 4 9 16 25 36 49 64 81 100 欲使用 fscanf 指令讀取其內容,可輸入如下: fid = fopen(39。 39。 , 39。 r39。 )。 myData = fscanf(fid, 39。 %g39。 )。 fclose(fid)。 myData % 顯示 myData MATLAB 程式設計入門篇:讀寫檔案 result myData = 1 4 9 16 25 36 49 64 81 100 上例顯示了 MATLAB 的 fscanf 指令和 C 的 fscanf 指令的最大不同: MATLAB 的 fscanf 指令是向量化的( Vectorized) 只要讀入資料的型態正確, MATLAB 的 fscanf 指令會一再執行 同時把所得結果存放於一個向量並回傳。 MATLAB 程式設計入門篇:讀寫檔案 sscanf  sscanf 函數和 fscanf 的功能很類似  sscanf 函數從字串( Strings) 中讀取資料  ex: str = num2str([pi, sqrt(2), log10(3)]) %建立一字串 str retrieved = sscanf(str, ‘%g’) %擷取 str中的 double str = retrieved = MATLAB 程式設計入門篇:讀寫檔案 寫入 ASCII 檔案  fprintf 函數可將資料依格式指定字串來寫入 ASCII 檔案,其使用語法如下:  fprintf(fid, format, y)  其中 fid 是欲寫入之檔案的辨識碼  format 是格式指定字串,用以指定資料寫至檔案的格式  y 是 MATLAB 的資料變數  常用的格式指定字串有下列幾種:  %e: 科學記號,即將數值表示成 a10b 的形式  %f: 固定欄寬(含整數與小數部份)的表示法  %g: 自動選取 %e 或 %f  其他各種格式指定字串可輸入 help fprintf 來得到詳細的線上說明。 MATLAB 程式設計入門篇:讀寫檔案 應用 :將平方根表寫入檔案  Ex: x = 1:10。 y = [x。 sqrt(x)]。 fid = fopen(39。 39。 , 39。 w39。 )。 fprintf(fid, 39。 Table of square root:\r\n39。 )。 fprintf(fid, 39。 % = %\r\n39。 , y)。 fclose(fid)。 dos(39。 start 39。 )。 % 開啟 MATLAB 程式設計入門篇:讀寫檔案 Result  在上例中 …  % 印出的總欄寬為 2,且不帶小數  % 印出的總欄寬為 10,包含 6位的小數  請自行詴驗後開啟 來驗證 MATLAB 程式設計入門篇:讀寫檔案 sprintf  sprintf 函數和 fprintf 函數的功能很類似  sprintf 將資料以字串形式傳回  Ex: str = sprintf(39。 log(%f) = %e\n39。 , 2, log(2)) str = log() = MATLAB 程式設計入門篇:讀寫檔案 暫存目錄  在某些應用上,可能需要用到暫存目錄及暫存檔案。  欲取用系統的暫存目錄,可用 tempdir如下: directory = tempdir  Result: directory = C:\DOCUME~1\jang\LOCALS~1\Temp\ MATLAB 程式設計入門篇:讀寫檔案 暫存檔案  欲開啟一暫存檔案,可用 tempname, 如下: filename = tempname  Result: filename = C:\DOCUME~1\jang\LOCALS~1\Temp\tp273132 MATLAB 程式設計入門篇:讀寫檔案 Tips  不同系統下 tempdir 和 tempname會依作業系統的環境變數而產生不同的回傳字串  例如在 Windows 98 作業系統下  tempdir 傳回的字串可能是  ’ C:\windows\temp\’  tempname 傳回的字串可能是  ’ C:\WINDOWS\TEMP\tp512124’。 MATLAB 程式設計入門篇:讀寫檔案 應用 :產生暫存的 HTML 檔案  以下利用 tempname 產生一個暫存的 HTML 檔案,然後再將此檔案顯示在瀏覽器。  Ex: filename = [tempname, 39。 .html39。 ]。 fid = fopen(filename, 39。 w39。 )。 fprintf(fid, 39。 htmlbody\n3。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。