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