天天看點

matlab 數組矩陣,MATLAB矩陣和數組

使用whos檢視變量資訊

>> A=100;

>> whos A

得到

Name      Size            Bytes  Class     Attributes

A         1x1                 8  double

建立2-20區間内以2為步長的向量

>> a=2:2:20

沒有指定步長,預設為1

特殊矩陣建立

建立所有元素為1的矩陣

>> ones(4)

建立機關矩陣

>> eye(5)

建立随機矩陣

>> rand(2,3)

建立随機數列

>> randperm(4)

設定随機種子。。。不知道幹什麼,設定以後兩次随機數一樣

>> rand('state',0);

>> randperm(4)

矩陣的合并

>> A=ones(2,5)*6;

>> B=rand(3,5);

>> C=[A;B]

得到

C =

6.0000    6.0000    6.0000    6.0000    6.0000

6.0000    6.0000    6.0000    6.0000    6.0000

0.8913    0.0185    0.6154    0.7382    0.9355

0.7621    0.8214    0.7919    0.1763    0.9169

0.4565    0.4447    0.9218    0.4057    0.4103

二維矩陣的尋址

全下标尋址

>> A=a(2,2)

單下标尋址

>> b=a(4)

邏輯下标尋址

>> B=a>5;

>> c=a(B)

使用冒号尋訪全行元素

>> d=a(1,:)

使用冒号尋訪全列元素

>> e=a(:,2)

二維矩陣指派

建立魔方矩陣

>> a=magic(4)

得到

a =

16     2     3    13

5    11    10     8

9     7     6    12

4    14    15     1

第三行第四列設定為0

>> a(3,4)=0

a =

16     2     3    13

5    11    10     8

9     7     6     0

4    14    15     1

将第一列設定為1

>> a(:,1)=1

a =

1     2     3    13

1    11    10     8

1     7     6     0

1    14    15     1

矩陣運算

矩陣大小

size(A)

矩陣長度

a= length(A)

計算平均值

b=sum(A(:))/numel(A)

數組運算和矩陣運算的差別

加.是數組運算

不加.是矩陣運算

矩陣的删除

删除第一列

A(:,1)=[]

矩陣的重構

将矩陣a逆時針旋轉3*90

b=rot90(a,3)

将矩陣a左右翻轉

c=fliplr(a)

将矩陣a上下翻轉

d=flipud(a)

矩陣部分元素的提取

求a的對角矩陣

b=diag(a)

矩陣第一條對角線及以上的元素取矩陣a的元素,其餘為0

c=triu(a,1)

建立稀疏矩陣為了減少記憶體

建立稀疏矩陣

S=spconvert(dr)

檢視完全矩陣

full(S)

轉換為稀疏矩陣

>> A=[1 0 0; 0 0 1; 1 2 0]; >> B=sparse(A)