講解視頻:可以在bilibili搜索《MATLAB教程新手入門篇——數(shù)學(xué)建模清風(fēng)主講》。?
MATLAB教程新手入門篇(數(shù)學(xué)建模清風(fēng)主講,適合零基礎(chǔ)同學(xué)觀看)_嗶哩嗶哩_bilibili
節(jié)選自第3章 3.2.2節(jié)
對向量元素的引用(即提取向量指定位置的值)有兩種情形,分別是提取向量中的單個(gè)元素和提取向量中的多個(gè)元素。在正式講解之前,我們先來介紹索引(或下標(biāo))的概念。
我們知道,向量分為行向量和列向量,它們在MATLAB中只有一個(gè)維度,因此我們可以利用向量中包含的元素個(gè)數(shù)來描述一個(gè)向量的大小。在MATLAB中,可以使用length函數(shù)或numel函數(shù)來計(jì)算向量中包含的元素個(gè)數(shù)。
例如:a = [1,3,8,9,7]; length(a)或numel(a)的返回結(jié)果是5,因?yàn)橄蛄縜中有五個(gè)元素。
假如我們有一個(gè)行向量a,里面包含了n個(gè)元素(n是大于等于1的常數(shù)),它們分別是??,那么我們可以列一個(gè)表格:
從上表可以看出,索引就是指某一個(gè)元素在向量中對應(yīng)的位置,也可以稱為元素在向量中所處的下標(biāo),在MATLAB中,向量的索引是從1開始的。
舉個(gè)具體的例子,假設(shè)向量a=[2 4 8 16 32 64 128 256 512 1024],那么a中有10個(gè)元素,因此a的最大索引是10。
(1)單個(gè)元素引用
我們提取向量a中單個(gè)元素的方法很簡單,只需要利用a(ind)命令,小括號中的ind就是你要提取的對應(yīng)元素的索引。(注意:創(chuàng)建向量用中括號,提取元素要用小括號哦?。?/strong>
例如:a(1)的結(jié)果為2,因?yàn)閍中第1個(gè)位置(索引或下標(biāo)等于1)的元素是2;類似的,a(9)等于512,因?yàn)閍中第9個(gè)位置的元素是512。
有些同學(xué)可能會好奇,如果我取索引為11,即輸入a(11)會出現(xiàn)什么情況?
MATLAB會報(bào)錯(cuò):“索引超出數(shù)組元素的數(shù)目(10)”,即告訴我們,現(xiàn)在這個(gè)向量中元素的數(shù)目只有10個(gè),即最大索引是10,而你取了索引11的元素,超出了取值范圍。
另外,如果我們將ind取成0、負(fù)數(shù)或者小數(shù),例如輸入a(0)、a(-1)、a(1.5),MATLAB也會報(bào)錯(cuò):“數(shù)組索引必須為正整數(shù)或邏輯值”。這里出現(xiàn)了“邏輯值”的概念,我們在本章后面小節(jié)中會介紹。
(2)多個(gè)元素引用
類似的,我們也可以利用向量的索引來同時(shí)提取多個(gè)位置的元素,這時(shí)候只需要將ind設(shè)置成一個(gè)向量,ind中放入我們想要提取的元素的索引,然后使用a(ind)命令即可。
例如,我們令ind = [1 3 5 7 9],那么a(ind)的結(jié)果為[2 8 32 128 512],即我們提取了向量a中奇數(shù)位置的元素。熟悉向量冒號創(chuàng)建方法的同學(xué)應(yīng)該能夠看出,ind等于1:2:9,因此我們可以直接將a(ind)寫成a(1:2:9),這就表示提取a中奇數(shù)位置的元素;類似的,提取a中偶數(shù)位置元素的命令是a(2:2:10),如果你不熟練的話,可以分成兩步寫,即先令ind=2:2:10,然后再使用a(ind)的命令。當(dāng)然,對于同一個(gè)位置的元素,我們也可以提取多次,例如:ind = [1 2 2 3 3 3],那么a(ind)得到的結(jié)果應(yīng)該是[2 4 4 8 8 8],以后熟悉的話可以直接寫成a([1 2 2 3 3 3])。
技巧:使用end索引
有同學(xué)會想,假如我不知道向量a中有多少個(gè)元素,也不想使用length函數(shù)或者numel函數(shù)來計(jì)算向量中元素的個(gè)數(shù),那我能不能提取出a中奇數(shù)位置的元素呢?這時(shí)候就需要用到一個(gè)特殊的關(guān)鍵字:end。它有很多種用法,在這里end可以用來替代向量的最后一個(gè)索引。
例如,我現(xiàn)在要訪問a中第五個(gè)至最后一個(gè)元素,那么我們可以直接使用a(5:end),這里的end就表示了a的最后一個(gè)索引;另外,我們還可以對end進(jìn)行計(jì)算,例如要訪問a中第五個(gè)至倒數(shù)第三個(gè)元素,我們可以使用a(5:end-2),得到的結(jié)果為[32 64 128 256]。
這里有一個(gè)易錯(cuò)點(diǎn),如果使用了end,不能將要取元素的索引賦值給ind。例如,還是要訪問a中第五個(gè)至最后一個(gè)元素,如果你令ind=5:end,MATLAB就會報(bào)錯(cuò)。因此,我們只能在a后面的小括號中使用end來替代數(shù)組的最后一個(gè)索引。
那我們回到上面的問題,在不知道a中有多少個(gè)元素的前提下,我們可以使用a(1:2:end)。 ???文章來源:http://www.zghlxwxcb.cn/news/detail-827875.html
最后請大家思考:如何將一個(gè)向量倒序?例如原來的向量是[1 5 8 4],倒序后是[4 8 5 1]。這個(gè)問題留作本章課后習(xí)題。文章來源地址http://www.zghlxwxcb.cn/news/detail-827875.html
到了這里,關(guān)于MATLAB知識點(diǎn):向量元素的引用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!