MATLAB 程式设计入门篇档案读写最全版.pptVIP

MATLAB 程式设计入门篇档案读写最全版.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB 程式设计入门篇档案读写最全版.ppt

讀取 ASCII 檔案(1/2) fgetl 函數: 可將 ASCII 檔案的內容中的某一列讀出 並將該列的 ASCII 內容以轉成字串傳回。 Ex:fgetl01.m fid = fopen(mean.m, r); while feof(fid)==0 % feof 測試檔案指標是否已到達結束位置 line = fgetl(fid); disp(line); end * yrty 讀取 ASCII 檔案(2/2) 執行上述程式後,MATLAB 會… 先在目前目錄找尋 mean.m 若找不到,再根據搜尋路徑,找出 mean.m 指令的位置然後再將其內容一列一列地列出。 輸入「which mean」可顯示檔案所在的路徑 fgets 和 fgetl 均可由檔案讀取一列資料: fgetl 會取得一列,但不包含換列字元 fgets 則保留換列字元 * yrty 應用:模擬unix的grep指令 grep :用來找出包含某一特定字串的一列 function grep(filename, pattern) fid = fopen(filename, r); line_number = 0; while feof(fid) == 0, line = fgetl(fid); matched = findstr(line, pattern); if ~isempty (matched) fprintf(%d: %s \n, line_number,line); end line_number = line_number + 1; end fclose(fid); * yrty 執行結果 如欲列出 grep.m 中包含 matched 字串的每一列,可輸入如下: grep(grep.m, matched) 6: matched = findstr(line, pattern); 7: if ~isempty (matched) 若要進行更複雜的字串比對,請參考本書姊妹作「MATLAB 程式設計:進階篇」中的第四章「通用運算式」。 例如要在一個檔案中找出「b 和 d 中間夾1至3個母音」的英文字 * yrty fscanf 函數fscanf可對ascii檔案作更精確的讀取,用法如下: matrix = fscanf(fid, format) 其中 fid 是欲讀取之檔案的辨識碼 format 是格式指定字串(Format Specifier) 常用的格式指定字串有下列幾種: %s:字串 %d:10進位的整數 %g:雙倍精準(Double-precision)的浮點數 其他各種格式指定字串可輸入 help fscanf 來得到詳細的說明 * yrty Ex:fscanf01.m 有一文字檔 test.txt 如下: 1 4 9 16 25 36 49 64 81 100 欲使用 fscanf 指令讀取其內容,可輸入如下: fid = fopen(test.txt, r); myData = fscanf(fid, %g); fclose(fid); myData % 顯示 myData * yrty 執行結果 myData = 1 4 9 16 25 36 49 64 81 100 上例顯示了 MATLAB 的 fscanf 指令和 C 的 fscanf 指令的最大不同: MATLAB 的 fscanf 指令是向量化的(Vectorized) 只要讀入資料的型態正確,MATLAB 的 fscanf 指令會一再執行 同時把所得結果存放於一個向量並回傳。 * yrty sscanf sscanf 函數和 fscanf 的功能很類似 sscanf 函數從字串(Strings)中讀取資料 ex:sscanf01.m str = num2str([pi, sqrt(2), log10(3)]) %建立一字串str retrieved = sscanf(str, %g) %擷取str中的double str = 3.1416 1.4142 0.47712 retrieved = 3.1416 1.4142 0.4771 * yrty 寫入 ASCII 檔案 fprintf 函數可將資料依格式指定字串來寫入 ASCII 檔案,其使用語法如下: fprintf(fid, format, y) 其中 fid 是欲寫入之檔案的辨識碼 format 是格式指定字串,用以指定資料寫至檔案的格式 y 是 MATLAB 的資料變數 常用的格式指定字串有下列幾種: %e:科學記號,即將數值表示成 a×

文档评论(0)

liuxiaoyu92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档