1. 程式人生 > >MATLAB字串學習筆記

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”,可以顯示所有的字串操作函式。