matlab 基础学习(1)——数组,矩阵操作和绘图基础学习

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

创建一维数组

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

 

绘图

plot(x,y,LineSpec,....)

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值