matlab中如何用数组绘图,matlab 基础学习(1)——数组,矩阵操作和绘图基础学习…

  • Post author:
  • Post category:其他


一维数组(创建,赋值,取值,分割取值,四则运算等操作)

创建一维数组

>> 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’);