【新星计划】MATLAB-字符串处理
在MATLAB中創建一個字符string非常簡單。事實上,我們已經使用了很多次。例如,在命令提示符下鍵入以下內容:
my_string = "Tutorials Point"MATLAB將執行上述語句并返回以下結果?
?
my_string = Tutorials PointMATLAB將所有變量視為數組,并將字符string視為字符數組。讓我們使用whos命令來檢查上面創建的變量 -
?
whosMATLAB將執行上述語句并返回以下結果 -
?
Name Size Bytes Class Attributesmy_string 1x16 32 char?
矩形字符數組
到目前為止我們探討的字符string是一維字符數組;?但是,我們需要存儲的不止一個。我們需要在我們的程序中存儲更多的維度文本數據。這是通過創建矩形字符數組實現的。
創建矩形字符數組的最簡單方法是根據需要垂直或水平連接兩個或更多個一維字符數組。
您可以通過以下任一方式垂直組合字符string -
-
使用MATLAB連接運算符[]并用分號(;)分隔每行。請注意,在這種方法中,每行必須包含相同數量的字符。對于不同長度的字符string,您應該根據需要填充空格字符。
-
使用char函數。如果字符string的長度不同,則char將較短的字符string填充到尾部空白處,以使每行具有相同的字符數。
創建腳本文件并在其中鍵入以下代碼 -???????
doc_profile = ["Zara Ali "; ... "Sr. Surgeon "; ... "R N Tagore Cardiology Research Center"]doc_profile = char(strcat("Zara Ali", strcat("Sr. Surgeon",strcat("RN Tagore Cardiology Research Center"))))運行文件時,會顯示以下結果 -???????
doc_profile =Zara Ali Sr. Surgeon R N Tagore Cardiology Research Centerdoc_profile =Zara Ali Sr. Surgeon RN Tagore Cardiology Research Center您可以通過以下任一方式水平組合字符string -
-
使用MATLAB連接運算符,[]并用逗號或空格分隔輸入字符string。該方法保留輸入數組中的任何尾隨空格。
-
使用字符string連接功能,strcat。此方法會刪除輸入中的尾隨空格。
創建腳本文件并在其中鍵入以下代碼 -???????
name = "Zara Ali ";position = "Sr. Surgeon "; worksAt = "R N Tagore Cardiology Research Center";profile = [name ", " position ", " worksAt]profile = strcat(name, ", ", position, ", ", worksAt)運行文件時,會顯示以下結果 -
???????
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Centerprofile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center將字符string組合成單元格數組
從我們之前的探討中可以清楚的表明,組合不同長度的字符string可能會很痛苦,因為數組中的所有字符string都必須具有相同的長度。我們在字符string的末尾使用了空格,使其長度相等。
然而,組合字符string的更有效的方法是將生成的數組轉換為單元格數組。
MATLAB單元格數組可以在數組中保存不同大小和類型的數據。單元格數組提供了一種更靈活的方式來存儲不同長度的字符string。
cellstr的函數轉換字符數組成字符string的單元數組。
例
創建腳本文件并在其中鍵入以下代碼 -???????
name = "Zara Ali ";position = "Sr. Surgeon "; worksAt = "R N Tagore Cardiology Research Center";profile?=?char(strcat(name,?position,?worksAt));profile = cellstr(profile);disp(profile)運行文件時,會顯示以下結果 -
???????
{ [1,1] = Zara Ali [2,1] = Sr. Surgeon [3,1] = R N Tagore Cardiology Research Center }MATLAB中的字符string函數
MATLAB提供了許多字符string函數來創建,組合,解析,比較和操作字符string。
下表簡要介紹了MATLAB中的字符string函數 -
| 空白 | 創建空白字符的字符string |
| char | 轉換為字符數組(字符string) |
| iscellstr | 確定輸入是字符string的單元格數組 |
| sprintf | 將數據格式化為字符string |
| strcat | 水平連接字符string |
| strjoin | 將單元格數組中的字符string連接到單個字符string中 |
| isspace | 數組元素是空格 |
| isstrprop | 確定字符string是否是指定的類別 |
| sscanf | 從字符string讀取格式化數據 |
| strfind | 在另一個中找到一個字符string |
| strrep | 查找并替換子string |
| strsplit | 在指定的分隔符處拆分字符string |
| strtok | 字符string的選定部分 |
| symvar | 確定表達式中的符號變量 |
| regexprep | 使用正則表達式替換字符string |
| strcmp | 比較字符string(區分大小寫) |
| strcmpi | 比較字符string(不區分大小寫) |
| strncmp | 比較字符string的前n個字符(區分大小寫) |
| strncmpi | 比較字符string的前n個字符(不區分大小寫) |
| deblank | 從字符string末尾剝去尾隨空白 |
| strtrim | 從字符string中刪除前導和尾隨的空格 |
例子
以下示例說明了一些上述字符string函數 -
格式化字符string
創建腳本文件并在其中鍵入以下代碼 -
???????
A = pi*1000*ones(1,5);sprintf(" %f %.2f %+.2f %12.2f %012.2f ", A)運行文件時,會顯示以下結果 -
連接字符string
創建腳本文件并在其中鍵入以下代碼 -
???????
%cell array of stringsstr_array = {'red','blue','green', 'yellow', 'orange'};% Join strings in cell array into single stringstr1 = strjoin(str_array, "-")str2 = strjoin(str_array, ",")運行文件時,會顯示以下結果 -
???????
str1 = red-blue-green-yellow-orangestr2 = red,blue,green,yellow,orange查找和替換字符string
創建腳本文件并在其中鍵入以下代碼 -???????
students = {'Zara Ali', 'Neha Bhatnagar', ... 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma',... 'Nuha Ali', 'Reva Dutta', ... 'Sunaina Ali', 'Sofia Kabir'}; % The strrep function searches and replaces sub-string.new_student = strrep(students(8), 'Reva', 'Poulomi')% Display first namesfirst_names = strtok(students)運行文件時,會顯示以下結果
比較字符string
創建腳本文件并在其中鍵入以下代碼 -
???????
str1 = "This is test"str2 = "This is text"if (strcmp(str1, str2)) sprintf("%s and %s are equal", str1, str2)else???sprintf("%s?and?%s?are?not?equal",?str1,?str2) end運行文件時,會顯示以下結果 -
???????
str1 = This is teststr2 = This is textans = This is test and This is text are not equal總結
以上是生活随笔為你收集整理的【新星计划】MATLAB-字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【新星计划】MATLAB-多项式计算
- 下一篇: 【新星计划】Python OpenCV