向量

向量的生成

向量的生成有直接输入法、冒号法和利用MATLAB函数创建3种方法。
(1)直接输入法。生成向量最直接的方法就是在命令行窗口中直接输入。

格式要求如下。

  • 向量元素需要用“[]”括起来。
  • 元素之间可以用空格、逗号或分号分隔。

(2)冒号法。
基本格式是 x=first:increment:last,表示创建一个从first开始,到last结束,数据元素的增量为increment的向量。若增量为1,上面创建向量的方式简写为 x=first:last。

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

(4)利用函数 logspace()创建一个对数分隔的向量。
与函数 linspace()一样,函数logspace()也通过直接定义向量元素个数,而不是数据元素之间的增量来创建数组。

向量元素的引用

向量元素引用的方式:

格式说 明
x (n)示向量x中的第,n个元素
x (n1 : n2)表示向量x中的第n1至n2个元素

向量的运算

1.向量的四则运算

向量的四则运算与一般数值的四则运算相同,相当于将向量中的元素拆开,分别进行四则运算,最后将运算结果重新组合成向量。

2.向量的点积运算

在MATLAB中,对于向量a、b,其点积可以利用a*b(a'是a的转置)得到,也可以直接用命
令dot算出。

调用格式说 明
dot(a,b)返回向量a和b的点积。需要说明的是,a和b,必须同维。
另外,当a,b都是列向量时,dot(a,b)等同于a’*b
dot(a,b,dim)返回向量a和b在dim维的点积,

3.同量的叉积运算

在空间解析几何学中,两个向量叉积的结果是一个过两相交向量交点且垂直于两向量所在平面的向量。在MATLAB中,向量的叉积运算可由函数cross()来实现。

调用格式说 明
cross(a,b)返回向量a和b的叉积。需要说明的是,a和b,必须是3维的向量
cross(a,b,dim)返回向量a和b在dim维的叉积。需要说明的是,a和b必须有相同的维数,size(a,dim)和 size(b,dim)
的结果必须为3

4.向量的混合积运算

在MATLAB中,向量的混合积运算可由上述两个函数 (dot、cross) 共同来实现。

多项式

多项式的创建

构造带字符多项式的基本方法是直接输入,主要由26个英文字母及空格等一些特殊符号组成。

数值多项式的四则运算

MATLAB没有提供专门针对多项式加减运算的函数,多项式的四则运算实际上是多项式对应的系数的四则运算。
多项式的四则运算是指多项式的加、减、乘、除运算。需要注意的是相加、减的两个向量必须大小相等。阶次不同时,低阶多项式必须用零填补,使其与高阶多项式有相同的阶次。多项式的加、减运算直接用“+”“-”来实现。
1.乘法运算
多项式的乘法用函数conv(pl,p2)来实现,相当于执行两个数组的卷积。

2.除法运算
多项式的除法用函数deconv(p1,p2)来实现,相当于执行两个数组的解卷。调用格式如下
[k,r]=deconv(p,q)
其中k返回的是多项式p除以q的商;r是余式。
[k,r] =deconv(p,q)<→p=conv(q,k)+r

3.导数运算

多项式导数运算用函数polyder()来实现。

特殊变量

单元型变量

单元型变量的创建

单元型变量的定义有两种方式,一种是用赋值语句直接定义,另一种是由函数cellO预先分配存
储空间,然后对单元元素逐个赋值。
(1)赋值语句直接定义。在直接赋值过程中,与在矩阵的定义中使用中括号不同,单元型变量的定义需要使用大括号,而元素之间由逗号隔开。

(2)对单元的元素逐个赋值。该方法的操作方式是先预分配单元型变量的存储空间,然后对变量中的元素逐个进行赋值。实现预分配存储空间的函数是cell()。

在MATLAB中,可以用函数cell()生成单元数组,具体的应用形式如下:

  • cell(N)生成一个nxn阶置空的单元数组。
  • cell(M,N)或者cell([M,N])生成一个m*n阶置空的单元数组。
  • cell(M,N,P,···)或者 cell(M,N,P,···)生成m x n x p x···阶置空的单元数组。
  • cell(size(A))生成与A同形式的单元型的置空矩阵。
单元型变量的引用

单元型变量的引用应当采用大括号作为下标的标识,而小括号作为下标标识符则只显示该元素的压缩形式。

MATLAB语言中有关单元型变量的函数
函数名说 明
cell生成单元型变量
cellfun对单元型变量中的元素作用的函数
celldisp显示单元型变量的内容
cellplot用图形显示单元型变量的内容
num2cell将数值转换成单元型变量
deal输入输出处理
cell2struct将单元型变量转换成结构型变量
struct2cell将结构型变量转换成单元型变量
iscell判断是否为单元型变量
reshape改变单元数组的结构

(1)函数celldisp()。函数celldisp0可以显示单元型变量的内容,具体应用形式如下。

  • celldisp(C)显示单元型变量C的内容。
  • celldisp(C,'name')在窗口中显示的单元型变量的内容名称为name,而不是通常的显示传统的ans。

(2)函数cellplot(。函数 cellplot(使用彩色的图形来显示单元型变量的结构形式,具体应用形式如下。

  • H=cellplot(C)返回一个向量,这个向量综合体现了表面、线和句柄。
  • H=cellplot(C,legend)返回一个向量,这个向量综合体现了表面、线和句柄,并有图形注释legend。

结构型变量

结构型变量的创建和引用

结构型变量是根据属性名(field)组织起来的不同数据类型的集合。结构的任何一个属性可以包含不同的数据类型,如字符串、矩阵等。结构型变量用函数 struct()创建,其调用格式见表4-5。结构型变量数据通过属性名来引用。

调用格式说,明
s=struct('field',{},'field2',{},···)表示建立一个空的结,构数组,不含数据
s=struct('field',values1,'field2',values2,···)表示建立一个具有属性名和数据的结构数组
结构型变量的相关函数
函数名说 明
struct创建结构型变量
fieldnames得到结构型变量的属性名
getfield得到结构型变量的属性值
setfield设定结构型变量的属性值
rmfield删除结构型变量的属性
isfield判断是否为结构型变量的属性
isstruct判断是否为结构型变量
最后修改:2023 年 10 月 02 日
如果觉得我的文章对你有用,请随意赞赏