matlab 基础学习(1)

您所在的位置:网站首页 matlab的矩阵和数组 matlab 基础学习(1)

matlab 基础学习(1)

2024-07-17 19:58| 来源: 网络整理| 查看: 265

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

创建一维数组

>> 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,....)

 

 

 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3