Matlab的数组索引
在 MATLAB中,根據元素在數組中的位置(索引)訪問數組元素的方法主要有三種:按位置索引、線性索引和邏輯索引。
按元素位置進行索引
最常見的方法是顯式指定元素的索引。例如,要訪問矩陣中的某個元素,請依序指定該元素的行號和列號。
e 是 A 中位于 3,2 位置(第三行第二列)的元素。
還可以在一個向量中指定多個元素的索引,從而一次引用多個元素。例如,訪問 A 的第二行中的第一個和第三個元素。
要訪問某個行范圍或列范圍內的元素,請使用 colon。例如,訪問 A 中第一到三行、第二到四列中的元素。
計算 r 的另一種方法是使用關鍵字 end 指定第二直至最后一列。通過此方法,可以直接指定最后一列,而不必知道 A 中到底有多少列。
如果要訪問所有行或所有列,只使用冒號運算符即可。例如,返回 A 的整個第三列。
通常,可以使用索引來訪問 MATLAB 中任何數組的元素,而不管其數據類型或維度如何。例如,直接訪問 datetime 數組的列。
對于更高維度的數組,可以擴展語法以匹配數組維度。假設有一個隨機的 3×3×3 數值數組。訪問位于該數組第一頁中第二行第三列的元素。
使用單個索引進行索引
訪問數組元素的另一種方法是只使用單個索引,而不管數組的大小或維度如何。此方法稱為線性索引。雖然 MATLAB 根據定義的大小和形狀顯示數組,但實際上數組在內存中都存儲為單列元素。我們可以使用矩陣來直觀地理解這一概念。下面的數組雖然顯示為 3×3 矩陣,但 MATLAB 將它存儲為單列,由 A 的各列順次連接而成。存儲的向量包含由元素 12、45、33、36、29、25、91、48、11 組成的序列,可以用單個冒號全部顯示。
例如,A 的第 3,2 個元素是 25,您可以使用語法 A(3,2)?訪問它。您也可以使用語法 A(6)?訪問此元素,因為 25 是存儲的向量序列中的第六個元素。
線性索引在視覺上可能不太直觀,但在執行某些不依賴于數組大小或形狀的計算時很有用。例如,可以輕松地對 A 的所有元素求和,而無需指定 sum 函數的第二個參數。
sub2ind 和 ind2sub 函數可用于在數組的原始索引和線性索引之間進行轉換。例如,計算 A 的第 3,2 個元素的線性索引。
從線性索引轉換回行和列形式。
使用邏輯值進行索引
使用 true 和 false 邏輯指示符也可以對數組進行索引,在處理條件語句時尤其便利。例如,假設想知道矩陣 A 中的元素是否小于另一個矩陣 B 中的對應元素。當 A 中的元素小于 B 中的對應元素時,小于號運算符返回元素為 1 的邏輯數組。
現在已經知道滿足條件的元素的位置,可以使用 ind 作為索引數組來檢查各個值。MATLAB 將 ind 中值 1 的位置與 A 和 B 中的對應元素進行匹配,并在列向量中列出它們的值。
MATLAB 中的 is 函數還返回邏輯數組,指示輸入中的哪些元素滿足特定條件。例如,使用 ismissing 函數檢查 string 向量中的哪些元素是缺失值。
假設要查找非缺失值元素的值。將?~?運算符和索引向量 ind 結合使用即可實現此目的。
?
總結
以上是生活随笔為你收集整理的Matlab的数组索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 指静脉识别技术特点及应用前景
- 下一篇: 微软Surface系列固件命名规则