为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

10-字元與字串

2011-02-25 19页 ppt 73KB 10阅读

用户头像

is_483218

暂无简介

举报
10-字元與字串null 第十章: 字元與字串 第十章: 字元與字串張智星 jang@cs.nthu.edu.tw http://www.cs.nthu.edu.tw/~jang 清大資工系 多媒體檢索實驗室 本章簡介本章簡介本章介紹 MATLAB 用於處理字元(Characters)與字串(Strings)的指令及相關資料型態。MATLAB 處理字串的相關指令大部分都放在下列目錄之中: {MATLAB 根目錄}\toolbox\matlab\strfun 其中的「strfun」就是代表...
10-字元與字串
null 第十章: 字元與字串 第十章: 字元與字串張智星 jang@cs.nthu.edu.tw http://www.cs.nthu.edu.tw/~jang 清大資工系 多媒體檢索實驗室 本章簡介本章簡介本章介紹 MATLAB 用於處理字元(Characters)與字串(Strings)的指令及相關資料型態。MATLAB 處理字串的相關指令大部分都放在下列目錄之中: {MATLAB 根目錄}\toolbox\matlab\strfun 其中的「strfun」就是代「String Functions」。若要查詢與字元和字串相關的指令,可在 MATLAB 下輸入: help strfun 或是 help strings10-1 字元與字串的基本概念10-1 字元與字串的基本概念數個字元(Characters)可以構成一個字串(Strings) 一個字串是被視為一個列向量(Row Vector)進行儲存 此一字串中的每一字元(含空白字元),是以其 ASCII 碼的形式存放於此列向量中的每一個元素(Element) 字元與字串的基本概念字元與字串的基本概念Matlab 用「單引號」來界定字串變數,多個字串變數可直接並排,以得到一個新字串變數,例如: 範例10-2: string102.m str3 = I like MATLAB, JavaScript, and Perl! 字元與字串的基本概念字元與字串的基本概念欲輸入含有單引號的字串,可重覆單引號的使用 若要計算字串變數的長度(即組成字元的個數),可用 length 指令 範例10-4: string104.m ans = 16 字串和其ASCII code字串和其ASCII codedouble 指令: 檢視字串變數的儲存內容(即 ASCII 內碼) char 指令: 將 ASCII 內碼轉回字串形式 範例10-6: string106.m phraseascii = Columns 1 through 12 73 39 118 101 32 103 111 116 32 97 32 100 Columns 13 through 16 97 116 101 33 sentence2 = I've got a date! 字元的儲存字元的儲存無論是中文或英文,每一個字元都會佔用兩個位元組(2 Bytes),故在上頁中,字串變數 sentence 總共由 16 個字元構成,佔用的記憶體總計為三十二個位元組(32 bytes) whos 指令: 檢視字串變數 sentence 所佔用儲存空間(whos 變數) MATLAB 是以兩個位元組來儲存一個字元,所以也可以支援 Big5 的中文碼,而且 Big5 中文的 ASCII 內碼都會大於數字 128 由於 MATLAB 將字串以其相對應之 ASCII 內碼(即數字形式)儲存成一列向量,故若對此字串直接進行數值運算,MATLAB 會先將此字串轉成數值,再進行一般數值向量的運算 字元與字串的基本概念-eval字元與字串的基本概念-evaleval 指令: 直接“執行”某一特定字串,其效果就如同直接在 MATLAB 指令視窗內輸入此一特定字串 eval 指令特別適用於在 for - loop 內自動產生有規律的變數名稱 範例10-11: string111.m Name Size Bytes Class x3 3x3 72 double array x4 4x4 128 double array x5 5x5 200 double array x6 6x6 288 double array Grand total is 86 elements using 688 bytes x3 , x4 , x5 , x6 都是在 for - loop 中產生的變數,分別代表維度為 3×3、4×4、5×5、6×6 的魔方陣字串的判斷字串的判斷class 或 ischar 指令: 判斷某一個變數是否為字串 範例10-12: string112.m 字串變數所佔用的空間是同長度雙精準(Double)數值變數的四分之一 10-2 一個變數來儲存多個字串 10-2 一個變數來儲存多個字串 第一種方法是使用二維字元陣列(Two Dimensional Character Arrays) 必須先確認每個字串(即每一橫列)的長度一樣,否則就必須在短字串結尾補上空白字元 範例10-13: string201.m departments = ee cs econ一個變數來儲存多個字串一個變數來儲存多個字串用char 指令儲存多個字串 得到結果和前一個範例依樣; 從二維字元陣列抽取出字串時,切記要使用 deblank 指令來移除尾部的空白字元 範例10-15: string203.m .一個變數來儲存多個字串一個變數來儲存多個字串當字串的長度差異甚大,那麼使用二維字元陣列來儲存多個字串,將造成記憶體空間的浪費,怎麼辦? 「異質陣列」: 使用大括號框住多個字串, 或用cellstr指令將字元陣列轉換成異質陣列 (string204.m,string205.m) 若要將包含字串的異質陣列轉換成一般的二維字元陣列,還是可以使用 char 指令 10-3 字串的比較、尋找、 代換、分解與結合10-3 字串的比較、尋找、 代換、分解與結合strcmp 指令: 用於比較字串內容的異同 範例10-19: string301.m 不相等回傳0,相等回傳1 DIFFERENT to C字串的比較和尋找字串的比較和尋找strncmp 指令: 用於比較字串的前 n 個字元 strcmp 及 strncmp 指令亦可用於字串異質陣列 findstr 指令: 尋找在某一個長字串中的子字串(Substrings),並傳回其起始位置 strrep 指令: 用於字串尋找及代換,例如: newString = strrep(string, pattern, pattern2) 字串的分解字串的分解strtok 指令: 根據一給定的分界字元(Delimiting Characters),將一字串拆解成數個字串,預設分界字元為空白字元 strvcat 指令: 將拆解下來的字串內容(即儲存在字串變數 chopped 中) 加到二維字元陣列 parsed 中 範例10-24: string306.m parsed = ee cs econ stat me 字串的結合字串的結合 MATLAB 在讀入中文字串時,將每一個中文字的 2-byte 分開來讀,造成兩個中文字變成四個字串元素 xlate 指令: 將中文的 2-byte 「結合」在一起 範例10-27: string309.m line2 = 我是Roger ans = 7 10-4 字串、數值與陣列的轉換10-4 字串、數值與陣列的轉換int2str 指令: 將整數型態的資料轉換成字串資料 例如:y = int2str(x), x為整數, y 為字串 num2str 指令: 將實數轉為字串 dec2hex 指令: 將 10 進位數值資料轉換成 16 進位的字串表示法 更多類似指令如 : hex2num, hex2dec, bin2dec….字串陣列的轉換字串陣列的轉換mat2str 指令可將矩陣轉換為字串,此字串若再經由 eval 指令的使用,可再變回原先的矩陣 範例10-32: string405.m B = [1 2 1;3 5 6] ans = 1字串與數值的結合字串與數值的結合sprintf 指令: 結合數值或字串,以產生新字串 (%s-印出字串,%g-印出數值,可使用 %f 或加上控制印出位數大小的數字 ) 範例10-33: string406.m newString = 「圓周率」是 3.14159 sscanf 可依給定的來解析出所要的字串或數值 範例10-34: string407.m mat = 2.0000 4.7000 5.2000
/
本文档为【10-字元與字串】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索