天天看点

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)