一维数组(创建,赋值,取值,分割取值,四则运算等操作)
创建一维数组
>> A=[] %创建空的数组
>> B=[1 2 3 4 5] %两种创建行向量,数组的方式
>> C=[1,2,3,4,5]
>> D=[1;2;3;4;5] %创建列向量,数组的方式
结果:
A =
[]
B =
1 2 3 4 5
C =
1 2 3 4 5
D =
1
2
3
4
5
用冒号创建递增,递减数组
>> A=2:6 %创建一维数组,行向量,从2 到6, 默认每次递增1
>> B=2.5:2:10.9 %从2.5 到10.9 指定每次递增2
>> C=8:-2:1 % 从8 到1, 指定每次递减-2
结果
A =
2 3 4 5 6
B =
2.5000 4.5000 6.5000 8.5000 10.5000
C =
8 6 4 2
用matlab的函数linspace() 建立一维数组,和冒号功能类似
>> A=linspace(0,10,20) % 从0 到10 ,建立20个元素的等差数列
>> B=linspace(2,7,2) %从2到7 ,建立2个元素的等差数列
>> C=linspace(2,7,1) %从2到7 ,建立1个元素的等差数列
结果:
A =
1 至 12 列
0 0.5263 1.0526 1.5789 2.1053 2.6316 3.1579 3.6842 4.2105 4.7368 5.2632 5.7895
13 至 20 列
6.3158 6.8421 7.3684 7.8947 8.4211 8.9474 9.4737 10.0000
B =
2 7
C =
7
一维数组的取值,赋值,分割取值(取部分值)
>> A=[1,2,3,4,5]
>> b1=A(3) %取一个元素,取第3个元素,结果是3
>> b2=A([2,4]) %取多个不连续的元素,取第2 和第4 个元素,结果是2,4
>> b3=A(2:4) %取数组A的 第2 到第4 的元素,结果是2,3,4
>> b4=A(3:end) %取数组第3个元素到最后一个元素,结果3,4,5
>> b5=(3:-1:1) % 反取,从第3个元素到第1个元素,3,2,1
>> b6=A(end:-1:1)
二维数组的创建,数据获取
>> A=[1 2 3; 4 5 6] %创建2行3列 数组
A =
1 2 3
4 5 6
>> a1=A(1,3) %获取第一行第3个元素
a1 =
3
>> a2=A(:,2) %获取数组A 的第2列元素,结果是一个列向量
a2 =
2
5
>> a3=A(1,:) %获取数组A的第一行元素,结果是一个行向量
a3 =
1 2 3
数组的加减乘除四则运算
>> A=[1,2,3,4,5]
>> B=[0 1 3 5 2]
>> C=A-B %每个元素相减
C =
1 1 0 -1 3
>> D=A+B %每个元素相加
D =
1 3 6 9 7
>> E=A.*B %数组的点乘,
E =
0 2 9 20 10
>> F=A*3 %数组的数乘
F =
3 6 9 12 15
>> G=A./B %数组左除数组,如果分子为0,则结果为无穷大(Inf)
G =
Inf 2.0000 1.0000 0.8000 2.5000
>> H=A./3 %数组左除常数
H =
0.3333 0.6667 1.0000 1.3333 1.6667
>> J=A.\B %数组右除数组, 即数组B 除数组A
J =
0 0.5000 1.0000 1.2500 0.4000
>> L=A.^B %数组的乘方
L =
1 2 27 1024 25
>> N=dot(A,B) %数组的点积,即两个数组相应位置相乘,再累加
N =
41
数组的排序
>> A=[10 9 6 1 5]
>> B=sort(A) %默认是升序排序
B =
1 5 6 9 10
>> [C,I]=sort(A,’ascend’) %对数组A进行升序排序,C 返回排序后结果,I 返回排序后元素在元素组的位置
C =
1 5 6 9 10
I =
4 5 3 2 1
>> D=sort(A,’descend’) %降序排列
D =
10 9 6 5 1
矩阵的操作
矩阵的创建,取值
>> A=[1:4;5:8;9:12;13:16] %创建多维矩阵
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> a1=A(2,3) %获取矩阵中第2行第3列的一个元素
a1 =
7
>> a2=A(2) %在matlab中,矩阵元素按照列进行存储,先存第一列,再存第二列,依次类推
a2 =
5
>> a3=A(7) %因此在mxn的矩阵中用单下标取值时,A(i,j) = A((j-1)*m+i)
a3 =
10
>> a4=A(1,:) %获取矩阵第一行,所有的类元素,即获取矩阵第一行元素
a4 =
1 2 3 4
>> a5=A(:,3) %获取矩阵第三列所有行元素,即获取矩阵第3列元素
a5 =
3
7
11
15
>> a6=A(1:2,1:2) %获取矩阵第一二行,第一二列元素,即获取矩阵的子矩阵
a6 =
1 2
5 6
矩阵操作
矩阵转置
>> A=[1:4;5:8;9:12;13:16]
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
>> B=A’
B =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
>> C=transpose(A)
C =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
矩阵求逆
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> B=inv(A)
B =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
矩阵基础数值运算
加减法
>> A=[1:4;5:8]
A =
1 2 3 4
5 6 7 8
>> B=[2 3 4 5;6 7 4 5]
B =
2 3 4 5
6 7 4 5
>> C=A-B
C =
-1 -1 -1 -1
-1 -1 3 3
>> D=A+100
D =
101 102 103 104
105 106 107 108
乘法
>> A=[1:4;5:8]
A =
1 2 3 4
5 6 7 8
>> B=[2 3;1 3; 6 7; 4 5]
B =
2 3
1 3
6 7
4 5
>> C=A*B %矩阵相乘,
C =
38 50
90 122
>> D=A.*B’ %矩阵点乘,相应位置元素相乘
D =
2 2 18 16
15 18 49 40
除法
>> A=[21 2 3; 7 3 1; 9 4 2]
A =
21 2 3
7 3 1
9 4 2
>> B=[3 5 7; 2 12 4; 2 7 4]
B =
3 5 7
2 12 4
2 7 4
>> C=B/A %矩阵右除,常用
C =
-0.3429 -10.3714 9.2000
-1.4857 -1.9429 5.2000
-0.7714 -4.0857 5.2000
>> D=B*inv(A)
D =
-0.3429 -10.3714 9.2000
-1.4857 -1.9429 5.2000
-0.7714 -4.0857 5.2000
>> E=A\B %矩阵左除, 结果和右除不一样,不常用
E =
0.2286 1.6286 0.5143
0.4286 4.4286 0.7143
-0.8857 -12.6857 -1.7429
特殊矩阵生成
全零矩阵
>> A=zeros(2,3) %生成2行3列全0矩阵
A =
0 0 0
0 0 0
全1矩阵
>> B=ones(3,2)
B =
1 1
1 1
1 1
单位矩阵
>> C=eye(3)
C =
1 0 0
0 1 0
0 0 1
>> D=eye(4,3)
D =
1 0 0
0 1 0
0 0 1
0 0 0
魔方矩阵
矩阵中每行,每列及两条对角线上的元素和都相等
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
0~1间均匀分布的随机矩阵
>> A=rand(2,3)
A =
0.2151 0.1130 0.2219
0.1413 0.2247 0.2220
标准正太分布随机矩阵
生成均值为0,方差为1 的标准正太分布
>> B=randn(2,3)
B =
-0.0742 0.9599 1.1348
-0.7403 0.3222 0.4410
matlab与概率统计
均匀分布随机数的产生
连续型均匀分布的随机数据
>> r=unifrnd(1,3) %返回区间[1,3]的连续型均匀分布随机数
r =
2.4042
>> R1=unifrnd(1,3,4,4) %返回区间[1,3]的连续型均匀分布随机数矩阵4X4
R1 =
2.7087 1.5790 2.2197 2.4457
1.2678 2.3417 2.2246 2.6568
1.2570 1.4633 2.9900 1.7311
1.9149 1.4180 2.9795 1.2921
离散型均匀分布
>> r2=unidrnd(10) %产生离散型均匀分布随机数据
r2 =
8
>> R2=unidrnd(8,4,4) %产生离散型均匀分布随机数据矩阵
R2 =
6 2 4 1
8 6 5 7
7 3 8 3
8 5 4 4
正太分布随机数据产生
>> r=normrnd(0,1) %产生服从均值为0,标准差为1 的正太分布随机数
r =
0.5694
>> r=normrnd(0,1,3,5) %产生服从均值为0,标准差为1 的正太分布随机数矩阵
r =
0.6118 -0.5573 0.9197 -1.0885 -1.5243
-0.4902 0.8021 -0.5572 0.6006 -0.3111
-1.7272 1.5039 0.3487 0.4130 1.6368
均匀分布概率密度函数
>> clear all
>> n=20;
>> x=1:n;
>> y=unidpdf(x,n);
>> figure;
>> plot(x,y,’ro’);
>> title(‘均匀分布(离散)’);
%连续型均匀分布
>> clear all
>> x=-5:0.1:10;
>> y=unifpdf(x,0,5);
>> plot(x,y,’r’)
正态分布概率密度函数
>> x=-8:0.5:8;
>> y1=normpdf(x,0,1); %标准正太分布
>> y2=normpdf(x,2,2); %非标准正态分布
>> plot(x,y1,x,y2,’:’)
>> x1=-4:0.5:8;
>> y3=normpdf(x1,2,1); %标准差越小,曲线就越都
>> y4=normpdf(x1,2,2);
>> y5=normpdf(x1,2,3);
>> plot(x1,y3,’r-‘,x1,y4,’b:’,x1,y5,’k–‘)
>> legend(‘SIGMA=1′,’SIGAM=2′,’SIGMA=3’);
>> x1=-4:0.5:8;
>> y6=normpdf(x1,0,1.5); %标准差越小,曲线就越都
>> y7=normpdf(x1,2,1.5);
>> y8=normpdf(x1,4,1.5);
>> plot(x1,y6,’r-‘,x1,y7,’b:’,x1,y8,’k–‘)
>> legend(‘MU=0′,’MU=2′,’MU=4’);