在 MATLAB 中查詢單元格陣列中的精確字串
MATLAB 是一款為科學家和工程師開發的程式設計環境,用於設計和分析系統、執行資料分析、建立視覺化效果等等。MATLAB 代表矩陣實驗室 (Matrix Laboratory),它是由 MathWorks 開發的一個程式設計和互動式平臺,提供各種用於程式設計數學函式和運算、資料分析等的工具。MATLAB 廣泛應用於科學、工程、金融、經濟等不同領域。
閱讀本文以瞭解在 MATLAB 中查詢單元格陣列中的精確字串的過程。
什麼是 MATLAB 中的單元格陣列?
在 MATLAB 中,單元格陣列是一種資料結構,其中陣列的每個元素都可以包含不同型別的資料。因此,在一個單元格陣列中,每個元素可以包含不同型別的資料的混合,例如整數、浮點數、字元、其他陣列等等。
在 MATLAB 中,我們可以使用以下兩種語法定義單元格:
A = {'banana', 5.215, [1, 4]}
或者
A = cell({'banana', 5.215, [1, 4]})
這裡,單元格陣列“A”包含三個不同資料型別的元素,如下所示:
第一個元素是字串“banana”。
第二個元素是浮點數“5.215”。
第三個元素是一個值為 [1, 4] 的普通陣列。
現在,讓我們討論如何在單元格陣列中查詢精確的字串。
在 MATLAB 中查詢單元格陣列中的精確字串
在 MATLAB 中,我們可以使用以下兩種 MATLAB 函式組合來查詢單元格陣列中的精確字串。
strcmp() 和 find() 函式。
ismember() 和 find() 函式。
讓我們透過程式示例瞭解如何在 MATLAB 中使用這些函式組合來查詢單元格陣列中的精確字串。
方法 1:使用 strcmp() 和 find() 函式
在 MATLAB 中,我們可以使用 strcmp() 和 find() 函式的組合來查詢單元格陣列中的精確字串。
示例 1
下面的 MATLAB 程式演示瞭如何使用 strcmp() 和 find() 函式的組合來查詢單元格陣列中的精確字串。
% Create a cell array of strings
A = {'Tutorials', 'Point', 'for', 'MATLAB'}
% Choose a target string
target_string= 'MATLAB'
% Get a logical array from strcmp
strcmp(A, target_string)
% Find the index of the target string
index = find(strcmp(A, target_string))
% Check if the target string is found
if ~isempty(index)
fprintf('The target string is found at index %d.
', index)
else
fprintf('The target string is not found.
')
end
輸出
它將產生以下輸出:
A = 1×4 cell array
{'Tutorials'} {'Point'} {'for'} {'MATLAB'}
target_string = 'MATLAB'
ans = 1×4 logical array
0 0 0 1
index = 4
The target string is found at index 4.
解釋
在此 MATLAB 程式碼中,我們首先建立了一個包含四個字串“{'Tutorials', 'Point', 'for', 'MATLAB'}”的單元格陣列“A”。然後,我們選擇目標字串“MATLAB”。之後,我們使用“strcmp()”函式返回一個邏輯陣列,如果單元格陣列的對應元素等於目標字串,則每個元素都為真(邏輯 1)。然後,我們使用“find()”函式查詢邏輯陣列中真(邏輯 1)元素的索引,該索引對應於給定單元格陣列中目標字串的索引。
現在,在程式碼中,如果“index”變數不為空,則在單元格陣列中將找到目標字串。因此,程式的輸出將為“目標字串在索引 4 處找到”,這表明目標字串存在於給定單元格陣列的索引 4 處。
方法 2:使用 ismember() 和 find() 函式
在 MATLAB 中,我們還可以使用 ismember() 和 find() 函式的組合來查詢單元格陣列中的精確字串。
示例 2
下面的 MATLAB 程式演示瞭如何在 MATLAB 中使用 ismember() 和 find() 函式的組合來查詢單元格陣列中的精確字串。
% Create a cell array of strings
A = {'Tutorials', 'Point', 'for', 'MATLAB'}
% Choose a target string
target_string = 'MATLAB'
ismember(A, target_string)
% Check if the target string is in the cell array
index = find(ismember(A, target_string))
% Check if the target string is found
if ~isempty(index)
fprintf('The target string is found at index %d.
', index)
else
fprintf('The target string is not found.
')
end
輸出
它將產生以下輸出:
A = 1×4 cell array
{'Tutorials'} {'Point'} {'for'} {'MATLAB'}
target = 'MATLAB'
ans = 1×4 logical array
0 0 0 1
index = 4
The target string is found at index 4
解釋
在此 MATLAB 程式碼中,我們使用 ismember() 函式檢查目標字串是否在單元格陣列中。在 MATLAB 中,“ismember()”函式返回一個邏輯陣列,如果單元格陣列的對應元素等於目標字串,則每個元素都為真(邏輯 1)。
我們使用 find() 函式查詢邏輯陣列中真(邏輯 1)元素的索引,該索引對應於給定單元格陣列中目標字串的索引。最後,如果“index”變數不為空,則在單元格陣列中將找到目標字串。
因此,MATLAB 程式的輸出將為“目標字串在索引 4 處找到”。這表明目標字串在給定單元格陣列的索引 4 處找到。
結論
我們可以使用“strcmp()”和“find()”或“ismember()”和“find()”函式的組合來查詢 MATLAB 單元格陣列中的精確字串。“strcmp()”和“ismember()”函式都返回一個邏輯陣列,如果單元格陣列的對應元素等於目標字串,則每個元素都為真(邏輯 1)。因此,使用這兩個 MATLAB 函式,我們可以輕鬆快速地在單元格陣列中搜索特定元素,並獲得其在單元格陣列中的索引值。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP