在使用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」,可以顯示所有的字串操作函式。
字串 學習筆記
這篇部落格只是記錄一下我在做題過程中碰到的一些關於字串巧妙的處理方式 可能只對我這個菜雞來說相對巧妙吧 1 stringstream的使用 第一次碰到stringstream的使用是在紫書上面p112,題目是uva10815。前幾天補字串的題目的時候在 洛谷p1308統計單詞數 也碰到了一題可以使用...
MATLAB字串陣列
4.1 字串陣列 4.1.1 字串入門 例 4.1.1 1 先請讀者實際操作本例,以體會數值量與字串的區別。clear 清除所有記憶體變數 a 12345.6789 給變數 a 賦數值標量 class a 對變數 a 的類別進行判斷 a s size a 數值陣列 a 的 大小 a 1.2346e ...
matlab字串處理
matlab字串處理 字串處理 a a b b b c cccc m 獲取字串長度 length a 連線兩個字串,每個字串最右邊的空格被裁切 d strcat a,c length d 連線多行字串,每行長度可不等,自動把非最長字串最右邊補空格 使與最長字串相等,會忽略空字串 e strvcat ...