Matlab字串
阿新 • • 發佈:2018-11-16
MATLAB提供了許多字串函式來建立,組合,解析,比較和操作字串。
下表簡要介紹了MATLAB中的字串函式。
用於儲存字元陣列中的文字,組合字元陣列等的函式 -
函式 | 描述 |
---|---|
blanks |
建立空白字串 |
cellstr |
從字元陣列建立字串陣列 |
char |
轉換為字元陣列(字串) |
iscellstr |
確定輸入是字串的單元格陣列 |
ischar |
確定專案是否是字元陣列 |
sprintf |
將資料格式化為字串 |
strcat |
水平連線字串 |
strjoin |
將單元格中的字串連線到單個字串中 |
識別字符串部分,查詢和替換子串的函式 -
函式 | 描述 |
---|---|
ischar |
確定專案是否是字元陣列 |
isletter |
陣列元素是否為字母 |
isspace |
陣列元素是空格 |
isstrprop |
確定字串是否是指定的類別 |
sscanf |
從字串讀取格式化資料 |
strfind |
在另一個字串中查詢一個字串 |
strrep |
查詢並替換子串 |
strsplit |
在指定的分隔符處拆分字串 |
strtok |
字串的選定部分 |
validatestring |
檢查文字字串的有效性 |
symvar |
確定表示式中的符號變數 |
regexp |
匹配正則表示式(區分大小寫) |
regexpi |
匹配正則表示式(不區分大小寫) |
regexprep |
用正則表示式替換字串 |
regexptranslate |
用正則表示式替換字串 |
字串比較的函式 -
函式 | 描述 |
---|---|
strcmp |
比較字串(區分大小寫) |
strcmpi |
比較字串(不區分大小寫) |
strncmp |
比較字串的前n 個字元(區分大小寫) |
strncmpi |
比較字串的前n 個字元(不區分大小寫) |
將字串更改為大寫或小寫,建立或刪除空格的函式 -
函式 | 描述 |
---|---|
deblank |
從字串末尾剝去尾隨空格 |
strtrim |
從字串中刪除前導和尾隨的空格 |
lower |
將字串轉換為小寫 |
upper |
將字串轉換為大寫字母 |
strjust |
對齊字元陣列 |
例子
以下示例說明了一些上述字串函式 -
格式化字串
建立指令碼檔案並在其中鍵入以下程式碼 -
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
MATLAB
執行上面示例程式碼,得到以下結果 -
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
Shell
字串連線
建立指令碼檔案並在其中鍵入以下程式碼 -
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
MATLAB
執行上面示例程式碼,得到以下結果 -
str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
Shell
查詢和替換字串
建立指令碼檔案並在其中鍵入以下程式碼 -
students = {'Bara Ali', 'Neha Bhatnagar', ...
'Nonica Malik', 'Madhu Gautam', ...
'Nadhu Sharma', 'Bhawna Sharma',...
'Muha Ali', 'Reva Dutta', ...
'Tunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
MATLAB
執行上面示例程式碼,得到以下結果 -
Trial>> students = {'Bara Ali', 'Neha Bhatnagar', ...
'Nonica Malik', 'Madhu Gautam', ...
'Nadhu Sharma', 'Bhawna Sharma',...
'Muha Ali', 'Reva Dutta', ...
'Tunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
new_student =
1×1 cell 陣列
{'Poulomi Dutta'}
first_names =
1×10 cell 陣列
1 至 7 列
{'Bara'} {'Neha'} {'Nonica'} {'Madhu'} {'Nadhu'} {'Bhawna'} {'Muha'}
8 至 10 列
{'Reva'} {'Tunaina'} {'Sofia'}
Shell
比較字串
建立指令碼檔案並在其中鍵入以下程式碼 -
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
MATLAB
執行上面示例程式碼,得到以下結果 -
str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal