1. 程式人生 > >Matlab字串

Matlab字串

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