MATLAB学习02:向量,多项式,特殊变量

向量

向量的生成:

直接输入法、冒号法、利用matlab函数创建

  • 直接输入法:

    >> a=[1,2;3,4]
    
  • 冒号法:

    >> x=0:10	%默认步长为1
    x =
    	0	1	2	3	4	5	6	7	8	9	10
    	
    >> y=0:2:10		%步长为两个冒号中间的数字,即2
    y =
    	0	2	4	6	8	10
    
  • 利用函数创建向量

    1. 利用函数linspace创建向量:

      linspace 通过直接定义数据元素个数,而不是数据元素之间的增量来创建向量。

      调用格式为linspace(first_value,last_value,number)

    >> x=linspace(0,10,5)
    x =
    	0	2.5000	5.0000	7.5000	10.0000
    
    >> y=linspace(100,10,5)
    y = 
    	100.0000	77.5000		55.0000		32.5000		10.0000
    
    1. 利用函数logspace创建一个对数分隔的向量:

      与linspace一样,直接定义数据元素个数。

      调用格式为logspace(first_value,last_value,number)

      表示创建一个从10first_value开始,到10last_value结束,包含number个数据元素的向量。

    >>  x=logspace(1,3,3)
    x=
    	10		100		1000
    

向量元素的引用

格式说明
x(n)表示向量中的第n个元素
x(n1:n2)表示向量中的第n1至n2个元素
>> x=0:10
x =
	0	1	2	3	4	5	6	7	8	9	10

>> x(2)
ans =
	1

>> x(2:5)	%2:5实际是向量(2,3,4,5),x(2:5)表示x向量中第2到第5个数。
ans =
	1	2	3	4	
	
>> x(2:2:10)	%x中第2、4、6、8、10个数
ans =
	1	3	5	7	9
	
>> x([6 2 11])	%不按顺序拿取数字
ans =
	5	1	10
	
>> x([2:5 [6 2 11]])	% 2:5 [6 2 11]=2 3 4 5 6 2 11 
ans =
	1	2	3	4	5	1	10

向量的运算

向量可看作一种特殊的矩阵,因此矩阵的运算对向量同样适用

四则运算

进行加减运算时,矩阵维度必须一致;进行乘除运算时,矩阵维度必须正确。

>> x=0:2:10
x =
	0	2	4	6	8	10
	
>> y=x+1
y =
	1	3	5	7	9	11
	
>> y-x
ans =
	1	1	1	1	1	1

>> y+x
ans =
	1	5	9	13	17	21
	
>> x.*y		%相应位置上的元素相乘 	
ans =
	0	6	20	42	72	110
	
>> x*y'		% y'表示将y矩阵进行转置		
ans =
	250

点积运算

对于向量a、b,其点积可以利用a.*b得到, 也可以直接用命令dot算出

调用格式说明
dot(a,b)返回向量a和b的点积(a,b必须同维)
dot(a,b,dim)返回向量a和b在dim维的点积
>> x=[1,2];
>> y=[3,4];

>> x.*y
ans =
	 3	8
>> dot(x,y)		% 1×3+2×4
ans =
	 11

叉积运算

在空间解析几何中,两个向量叉乘的结果是一个过两箱交向量交点且垂直于向量所在平面的向量。

调用格式说明
cross(a,b)返回向量a和n的叉积。a,b必须是3维向量
cross(a,b,dim)返回向量a和n在dim维的叉积。a,b必须有相同维,size(a,dim)和size(b,dim)的结果必须为3
>> x=[1 2 3];
>> y=[4 5 6];
>> cross(x,y)
ans =
	-3	 6 	-3	

多项式

在高等代数中,多项式一般可表示为:a0xn+a1xn-1+···+an-1x+anxn

在matlab中,多项式的系数组成的向量表示为:p=[a0,a1,···an-1,an]

多项式的创建

  • 直接输入

    >> 'a*x.^n+b*x.^(n-1)'
    ans =
    	'a*x.^n+b*x.^(n-1)'
    
  • 通过函数poly2sym来实现

    调用格式:poly2sym§

    >> p=[1 2 1];
    >> poly2sym(p)
    ans =
    x^2 + 2*x + 1
    

多项式的运算

乘法运算

多项式的乘法用函数**conv(p1,p2)**来实现,相当于执行两个数组的卷积。

>> p1=1:5
p1 =
	1	2	3	4	5
>> p2=2:6
p2 =
	2	3	4	5	6
>> conv(p1,p2)
ans =
	2	7	16	30	50	58	58	49	30

除法运算

多项式的除法用函数deconv(p1,p2)**来实现,相当于执行两个数组的解卷。

调用格式:[k,r] = deconv(p,q)

其中k返回多项式p除以q的商,r是余式。[k,r] = deconv(p,q) ⇔ p = conv(q,k) + r

求导

多项式的导数运算用polyder来实现。

调用格式: polyder§ p为多项式系数向量

>> p=[2 3 8 -5 6];
>> a=poly2sym(p)
a =
2*x^4 + 3*x^3 + 8*x^2 - 5*x + 6
>> q=polyder(p)
q =
	8 9 16	-5

特殊变量

特殊变量包含单元型变量和结构型变量

单元型变量

单元型变量是以单元为元素的数组,每个元素称为单元,每个单元可包含其他类型的数组,通常由“{ }”来创建,其数据通过数组下标来引用。

单元型变量的创建

  1. 赋值语句直接定义

    >> A=[1 2;3 4];
    >> B=3+2i;
    >> C='asd';
    >> D=2;
    >> E={A,B,C,D}
    E =
    	1×4 cell 数组
    	 {2×2 double}	{[3.0000 + 2.0000i]}	{'efg'}		{[2]}
    

    拿取元素:(接上)

    >> E{1}
    ans =
    	1	2
    	3	4
    
  2. 对单元的元素逐个赋值

    先预分配单元型变量的存储空间,然后对变量中的元素逐个进行赋值。

    实现预分配存储空间的函数是cell

    • cell(N) 生成n×n阶置空的单元数组
    • cell(M,N)cell([M,N]) 生成m×n阶置空的单元数组
    • cell(M,N,P,···)或者cell([M,N,P,···]) 生成m×n×p···阶置空的单元数组
    • cell(size(A)) 生成与A同形的单元型的置空矩阵
    >> E=cell(1,3)
    E =
    	1×3 cell 数组
    	 {0×0 double}	{0×0 double}	{0×0 double}	
    
    >> E{1,1}	%1行1列
    ans =
    	[]
    	
    >> E{1,1}=1:4	%赋值
    E =
    	1×3 cell 数组
    	 {1×4 double}	{0×0 double}	{0×0 double}
    >> E{1,2}='asd'
    E =
    	1×3 cell 数组
    	 {1×4 double}	{'asd'}		{0×0 double}
    

有关单元型变量的函数表

在这里插入图片描述

结构型变量

结构型变量是根据属性名(field)组织起来的不同数据类型的集合。

结构型变量的创建和引用

在这里插入图片描述

>> m=struct('color',{'red','black'},'number',{1,2})
m =
	包含以下字段的 1×2 struct 数组:
	color
	number
>> m(1)
ans =
	包含以下字段的 1×2 struct 数组:
	color:'red'
	number:1
>> m(1).color
ans =
	'red'
	

结构型变量相关函数

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值