MATLAB 矩陣元素的引用

2021-10-08 02:51:56 字數 2596 閱讀 7240

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,...