MATLAB(4)矩陣操作

vili_sky發表於2017-04-03

MATLAB的資料型別有

① 數值型: 雙精度(8位元組)    單精度    帶符號和無符號整型

② 字串

③ 結構體

④ 單元

⑤ 多維矩陣

⑥ 係數矩陣

本文主要介紹矩陣的一些操作:

>> A=[1 2 3]

A =

     1     2     3

>> A=[1,2,3]

A =

     1     2     3

>> a=[1 2 3;4 5 6]

a =

     1     2     3

     4     5     6

>> a=[1 2 3;4, 5, 6]

a =

     1     2     3

     4     5     6

>> zeros(3)

ans =

     0     0     0

     0     0     0

     0     0     0

>> zeros(2)       %建立2x2 的零矩陣

ans =

     0     0

     0     0

>> zeros(2,3)   %建立2x3 的零矩陣

ans =

     0     0     0

     0     0     0

>> ones(2)   %建立2x2 的么矩陣

ans =

     1     1

     1     1

>> ones(2,3)   %建立2x3 的么矩陣

ans =

     1     1     1

     1     1     1

>> A=1:2:10     %冒號表示式建立向量  1為初始值   10  為終止值   2為步長

A =

     1     3     5     7     9

>> A=linspace(1,10,5)    %冒號表示式建立向量  1為初始值   10  為終止值   2為步長

A =

    1.0000    3.2500    5.5000    7.7500   10.0000

>> A=linspace(1,10,5)    %linspace函式建立行向量  1為初始值   10為終止值   5為行向量的大小

A =

    1.0000    3.2500    5.5000    7.7500   10.0000

>> B=linspace(1,10,100)

>> C=1:9/99:10     

>> B==C       %比較和 C

索引矩陣

>> D=[1 2 3;4 5 6;7 8 9]

D =

     1     2     3

     4     5     6

     7     8     9

>> D(2,3)     %得到D矩陣中第2行第3列的值

ans =

     6

>> D(8)   %矩陣中按列來儲存的,第個 則為  6

ans =

     6

>> find(D==6)    %得到 矩陣中 數字6所在的位置

ans =

     8

>> i=find(D==6)    %得到 矩陣中 數字6所在的位置,按列的儲存方式

i =

     8

>> [i,j]=find(D==6)    %得到 矩陣中 數字6所在的位置,顯示 行 和列

i =

     2

j =

     3

>> sub2ind(size(D),2,3)   %已知一個數的行標和 列標,  得到 序號

ans =

     8

>> ind2sub(size(D),8)   %已知一個數的序號   得到行標和 列標

ans =

     8

>> [i,j]=ind2sub(size(D),8)   %已知一個數的序號   得到行標和 列標

i =

     2

j =

     3


重排矩陣

 A

A =

    1.0000    3.2500    5.5000    7.7500   10.0000

>> B=reshape(A,5,1)   %A矩陣轉換為 5行 1列的列矩陣的結果賦值給B

B =

    1.0000

    3.2500

    5.5000

    7.7500

   10.0000

>> A

A =

    1.0000    3.2500    5.5000    7.7500   10.0000

>> C=A(:);   %A矩陣轉換為 5行 1列的列矩陣的結果賦值給C,A 不變化,此方法轉化為列矩陣的效率更高

>> C

C =

    1.0000

    3.2500

    5.5000

    7.7500

   10.0000

>> A

A =

    1.0000    3.2500    5.5000    7.7500   10.0000

>> a

a =

     1     2     3

     4     5     6

>> b=reshape(a,3,2)

b =

     1     5

     4     3

     2     6

轉置矩陣

>> c=b'

c =

     1     4     2

     5     3     6


拆分矩陣

>> D

D =

     1     2     3

     4     5     6

     7     8     9

>> E=D(1,:)     %得到D矩陣中 第 1行的所有

E =

     1     2     3

>> E=D(1,1:end)     %得到D矩陣中 第 1行的所有同上

E =

     1     2     3

>> E=D(1,1:end-1)     %得到D矩陣中 第 1行的 第1個至end-1即為去除最後一個 為: 1 2

E =

     1     2

>> E=D([1 2],[1 2])     %得到D矩陣中 第 1行的 第1個和第2,以及第2行的第1個和第2

E =

     1     2

     4     5

>> D

D =

     1     2     3

     4     5     6

     7     8     9

>> E=D(1:2,1:2)     %得到D矩陣中 第 1行到第二行 的 第 列 到第 列, 結果同上

E =

     1     2

     4     5

>> E=D(1:3,2:3)     %得到D矩陣中 第 1行到第3行 的 第 列 到第 3列,

E =

     2     3

     5     6

     8     9

>> E(2)=[]   %刪除矩陣E的第 個 元素

E =

     2     8     3     6     9

>> E(2)=[]   %刪除矩陣E的第 個 元素

E =

     2     3     6     9

>> E=reshape(E,2,2)

E =

     2     6

     3     9

>> E(1,:)=[]  %刪除矩陣E的第 1行的所有 元素

E =

     3     9

擴充套件矩陣

>> E=repmat(E,1,1)

E =

     3     9

>> E=repmat(E,1,2)

E =

     3     9     3     9

>> E=repmat(E,2,1)

E =

     3     9     3     9

     3     9     3     9

>> H=[1 2 3 3 3 4 4]

H =

     1     2     3     3     3     4     4

>> K=unique(H)    %去除H矩陣中相同的元素

K =

     1     2     3     4 

>> K=unique(E,'rows')    %去除E矩陣第2行中相同的元素

K =

     3     9     3     9

>> 

 

相關文章