MATLAB字串學習筆記
MATLAB字串
在使用MATLAB時經常會遇到對字元或字串的操作。本章將對MATL AB的字串函式進行詳細的介紹。字串是指1X n的字元陣列。
在MATLAB軟體中提供了很多的字元或字串操作方法和函式,包括字串的建立、字串的屬性、比較、查詢以及字串的轉換和執行等。
字串處理函式
在MATLAB中,單個字元是按照Unicode編碼儲存的,每個字元佔兩個位元組。MATL.AB內部按照字元的編碼數值對字串進行運算。字元和字串是MATLAB語言的重要組成部分,MATLAB提供了強大的字串處理功能,下面對常用的字串處理函式進行詳細的介紹。
字串基本屬性
在MATLAB中,對字串的設定非常的簡單,只需要用單引號(')將需要設定的字串括起來。
通過函式disp():對字串進行顯示。
通過函式size( ): 取得該字串的長度。
通過函式double( ):將字串以ASCI|碼顯示。
通過函式char( ): 將ASCII碼以字串顯示。
字串的構造
在MATLAB中,建立字串非常的簡單,將字串中的字元放到一對單引號之間即可。該單引號必須是在英文狀態下輸入的。多個字串可以構成字元矩陣,但是矩陣的每行字元數必須相等。
函式strcat( )和函式strvcat( )對字串進行連線。
函式strcat()將多個字串連線成行向量,字串首尾連線在一起, 形成一個新的字串。
函式strvcat( )將多個字串連線成列向量。
字串的比較
在MATLAB中,對兩個字串進行比較採用函式strcmp( )和函式strncmp(),‘下 面分別進行介紹:
函式strcmp( )的呼叫格式為n=strcmp(str1, str2), 該函式比較字串str1和字串str公是否相等,如果相等,函式返回值為1;當不相等時,返回值為0。
函式strncmp( )的呼叫格式為n=strncmp(str1, str2, k),該函式比較字串str1和字串str2的前k個字元是否相等。如果相等,返回值為1;當不相等時,返回值為0。該函式區分字元的大小寫。
函式strncmpi( )的呼叫格式為n=strncmpi(str1, str2, k),和函式strncmp( )基本-樣。該函式和函式strncmp( )的不同之處是,該函式不區分字元的大小寫。
字串的查詢和替換
字串的查詢和替換時字串操作的一項重要內容,在MATLAB中提供了函式findstr( )(這個函式在有可能會被去掉,不建議使用)、strfind( )、和strrep()等函式來實現對字串的查詢和替換操作。
findstr(s1,s2)--在較長的字串中查詢較短的字串出現的次數,並返回其位置,因此無論s1,s2哪個為長字串,位置在前在後都沒有關係。
函式strfind( )的呼叫格式為k=strfind(text, pattern),在text字串中查詢pattern字元或字串,當查詢成功後返回第一個相同字元的具體位置。
函式strrep( )的呼叫格式為S=strrep(S1, S2, S3), 該函式會將字串S1中的子串S2都替換為S3,然後返回到字串S中。
字串的轉換
在MATL AB中, 可以使用函式num2str( )、int2str( )、
str2num( )和str2double( )等實現字串和數值之間的相互轉換。下面分別進行介紹:
函式t=num2str(X):函式將數字X轉換為字串t。如果輸入引數X為矩陣, 則轉換為一一個字串矩陣。該函式也可以指定數字的精度,呼叫格式為t=num2str(X, n),其中t的精度為n位。
函式t= int2str(X), 該函式將整數X轉換為字串。如果X不是整數,先將X取整,然後再轉換為字串。
函式x=str2num(S),該函式將字元型矩陣S轉換為-一個數字矩陣。
函式x=str2double(S),該函式將字串轉換為雙精度的數值。
函式str=mat2str(mat),該函式將陣列或矩陣轉換為對應的字串。
t1=num2str(randn(3,3)*100) %將數字轉換為字串
pi=num2str(pi,6) %只顯示6位
t2=int2str(randn(3,3)) %先取整,然後轉換為字串
x1=str2num(t2) %將字串矩陣轉換為數字矩陣
x2=str2double('123+45i') %將字串轉換為雙精度數值
str=mat2str(magic(3)) %將矩陣轉換為字串
b=dec2bin(254) %將十進位制數轉換為二進位制
h=dec2hex(234) %將十進位制數轉換為十六進位制
d1=hex2dec('2B') %將十六進位制轉換為十進位制
d2=bin2dec('1000101') %將二進位制轉換為十進位制
字元的分類
在MATLAB中,字串中的字元通常可以分為空白字元、字母字元和其他型別的字元。可以通過函式isspace()和函式isletter( )對字串中的字元進行分類。下 面分別進行介紹:
函式isspace(S):字串S進行分類,如果為空白字元,返回值為1,; 否則返回值為0;
函式isletter(S),對字串S進行分類,如果為字母字元, 返回值為M;否則返回值為0。
這兩個函式是對每一個字母進行判斷
字串的執行
MATLAB表示式可能包含在字串中,‘下面詳細介紹如何執行這些包含在字串中的表示式。在MATLAB中提供了三個 函式eval( )、evalc( )和evalin( ),可以執行字串中包含的MATLAB程式。
函式eval( )的呼叫格式為: eval('expression'):在該函式中expression為包含MATLAB表示式的字串。
其他操作
在MATLAB中通過函式upper( )可以將字串轉換為大寫字母。
函式lower( )將字串轉換為小寫字母。
利用函式ischar()判斷是否為字元,如果為字元則返回值為1, 否則返回值為0。
在MATLAB的命令視窗,輸入命令“help strfun”,可以顯示所有的字串操作函式。