1、通過下標來引用矩陣的元素,下標必須為正整數,且要用圓括號括起來
例子(1):
a(3,2)表示a矩陣第3行第2列的元素。
如果要給這個元素賦值200。
注意:這只是改變了a(3,2)這個元素的值,並不會影響到其他的元素
例子(2):
當給出的行列下標超出原來矩陣的行數和列數的時候,在matlab中將自動擴充套件原來的矩陣,並將擴充套件後沒有賦值的矩陣元素,置為0.
2、通過序號來引用
在matlab中,矩陣元素按列儲存,即首先儲存矩陣的第一列元素,然後儲存第二列元素,…,一直到矩陣的最後一列元素。
矩陣元素的序號就是矩陣元素在記憶體中的排列順序。
序號與下標是一一對應的,以m×n矩陣a為例,矩陣元素a(i,j)的序號為(j-1)×m+i
矩陣元素的序號與下標可以利用sub2ind和ind2sub函式實現相互轉換。
sub2ind函式:將矩陣中指定元素的行、列下標轉換成儲存的序號。呼叫格式為:
d=sub2ind(s,i,j)
d:表示對應下標元素的序號,它的行列數與i和j相同
s:表示要轉換的的矩陣的行數和列數,是由行數和列數組成的向量,通常用size函式來獲取
i:是要轉化矩陣元素的行下標
j:是要轉換矩陣的列下標
如果i和j是矩陣,表示要將矩陣中的多個元素的行列下標轉換成儲存的序號,及i和j的行列數必須相同。
sub2ind函式中第乙個引數通過size函式來獲取,得到矩陣a的行數和列數,是乙個包含兩個元素的向量,分別為a矩陣的行數2和列數3。第二個和第三個引數都是用矩陣表示的,兩個矩陣對應的元素代表矩陣a 中的某個元素的行下標和列下標,由呼叫結果可知:行下標為1,列下標為1的元素,在矩陣中是序號為1的;行下標為2列下標為1的元素在矩陣中序號為2;行下標為2列下標為3的元素在矩陣中序號為6;行下標為2列下標為2的元素在矩陣中序號為4.
ind2sub函式:將把矩陣元素的序號轉換成對應的下標,其呼叫格式為:
[i,j]=ind2sub(s,d)
s:表示要轉換的矩陣對的行數和列數,是由行數和列數組成的有兩個元素的向量
d:序號,函式返回值為序號所對應元素的行下標和列下標
i:對應元素的行下標
j ;對應元素的列下標
[3,3]表示是乙個3行3列的矩陣
[1,3,5]表示要求乙個3行3列矩陣的第乙個,第三個,第五個元素的下標
結果表明:第乙個,第三個,第五個元素的下標分別為(1,1),(3,1),(2,2)。
子矩陣是指由矩陣中的一部分元素構成的矩陣。
a(i,:) 第i行的全部元素
a(:,j) 第j列的全部元素
a(i:i+m,k:k+m) 第i~i+m行內且在第k~k+m列中的所有元素
a(i:i+m,:) 第i~i+m行的全部元素
end運算子:表示某一維的末尾元素下標。
a(end,:)表示應用矩陣a 的最後一行的元素。
a([1,4],3:end)表示應用第一行和第四行的從第三列到最後一列的元素。
空矩陣是指沒有任何元素的矩陣。
x是乙個空矩陣。如果要將某些元素從乙個矩陣中刪除,直接將這些元素置為空矩陣
a(:,[2,4])=表示賦空矩陣,刪除第二列和第四列元素。
reshape(a,m,n):在矩陣總元素保持不變的前提下,將矩陣a重新排成m×n的二維矩陣。
注意:reshape函式只是改變原矩陣的行數和列數,但並不改變原矩陣元素個數及其儲存順序。
y=reshape(x,3,4)表示呼叫reshape函式,利用向量x建立3行4列的矩陣賦給y
矩陣x為1行12列的矩陣
矩陣y為2行4列的矩陣
a(: ) :將矩陣a的每一列元素堆疊起來,成為乙個列向量。
可知a(:)等價於reshape(a,6,1)。
Matlab 5 矩陣元素的引用
二 利用冒號表示式獲得子矩陣 三 利用空矩陣來刪除矩陣的元素 四 改變矩陣的形狀 格式 矩陣變數名 x,y 說明 x,y 表示 行號,列號 可以越界引用,矩陣變數自動擴充,未賦值的元素預設賦值為0 例 矩陣元素按例儲存,第1列,第2列。矩陣元素的序號就是矩陣元素在記憶體中的排列順序 不可越界 矩陣元...
矩陣元素的引用
1 通過下標來引用矩陣的元素 a 3,2 表示a矩陣第3行第2列的元素 命令列 a 3,2 200 如果給出的行下標或列下標大於原來的矩陣的行數和列數,那麼matlab將自動擴充套件原來的矩陣,並將擴充套件的矩陣元素置為0 2 通過序號來引用 命令列 a 1,2,3 4,5,6 a 1 2 3 4 ...
matlab陣列元素的引用
1.下標法 subscripts 2.索引法 index 3.布林法 boolean 在使用這三種方法之前,大家頭腦一定要清晰的記住,matlab中陣列元素是按列儲存 與fortran一樣 比如說下面的二維陣列 a 8 1 6 3 5 7 4 9 2 matlab的儲存順序是8,3,4,1,5,9,...