matlab 找到数组中第一个不连续点_MATLAB入门---MATLAB计算基础

9115c233b6e10b10e0e4e8d1014b1226.png

MATLAB是一门计算语言,它的运算指令和语法基于一系列基本的矩阵运算以及它们的扩展,它还支持复数这一数值元素,这也是MATLAB区别于其他高级语言的最大特点之一,它给许多领域的计算带来了极大的方便。

1.1MATLAB数值类型

MATLAB包括了四种基本数据运算,即双精度数组、字符串数组、元胞数组、构架数组。数值之间的相互转换,这就为其计算功能开辟了广阔的空间。

1.变量与常量

变量,是数值计算的基本单元。

MATLAB中的变量是无须事先定义的,这与C语言等高级语言不同。一个变量以其名称在语句命令中合法出现一次就可以被定义了。运算表达式变量中不允许有未被定义的变量,也不需要预先定义变量的类型,MATLAB会自动生成变量,并根据变量的操作来确定其类型。就这点来看,为使用者的操作提供了方便。

(1)MATLAB变量命名规则

1)变量名区分大小写,也就是说A和a表示的是不同的变量;

2)变量名是以英文字母开始的,第一个字母后面可以使用字母、数字、下划线,但不能使用空格和标点符号;

3)变量名的长度规定:不能超过31位,超过的部分将被忽略处理;

4)某些常量也可以作为变量使用,如i在MATLAB中表示虚数单位,但也可以作为变量使用。

常量,就是指的那些在MATLAB中已预先定义其数值的变量,我们把默认的常量做了一个表格,如下所示:

7e99d85fdfea2c88deb6f41e0fad30ba.png

(2)MATLAB变量的显示

任何MATLAB语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。

format只影响结果的显示,不影响其计算与存储。

MATLAB总是以双字长浮点数(双精度)来执行所有的运算。如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有下图的几种形式:

c0f286ff6be958851e192468181e6c4c.png

2.字符串

字符是MATLAB中符号运算的基本元素,也是文字等表达方式的基本元素,在MATLAB中,字符串作为字符数组用单引号(')引用到程序中,还可以通过字符串运算组成复杂的字符串。字符串数值和数字数值之间可以进行相互转化,也可以执行字符串的有关操作。

3.元胞数组

元胞是元胞数组(Cell Array)的基本组成部分。

元胞数组和数字数组很相似,以下标来区分,单元胞数组由元胞和元胞内容两部分组成。用花括号{ }表示元胞数组的内容,用圆括号( )表示元胞元素。

与一般的数字数组不同,元胞可以存放任何类型、任何大小的数组,而且同一个元胞数组中各元胞的内容可以不同。

例1:元胞数组创建与显示实例

解:MATLAB程序代码如下:

A

元胞数组A的第1行用元胞数组标志法建立一个字符串和一个矩阵;第2行用元胞内容编址法,建立一个传递函数和一个由两个元素组成的元胞组,该院包租分别是矩阵和字符串,最后,用celldisp函数显示该元胞数组A。

4.构架数组

与元胞数组相似,构架数组(Structure Array)也能存放各类数据,使用指针方式传递数值。

构架数组由结构变量名和属性名组成,用指针操作符“.“连接结构变量名和属性名。

例如,可用parameter.temperature表示某一对象的温度参数,用parameter.humidity表示某一对象的湿度参数等,因此,该结构数组parameter由两个属性组成。

5.对象

面对对象的MATLAB语言采用了多种对象,如自动控制中常用的传递函数模型对象(tf object)、状态空间模型对象(ss object)和零极点模型对象(zpk object),一些对象之间可以相互转换,例如可以从传递函数模型对象转化为零极点模型对象,这将在后面具体介绍。

1.2关系运算和逻辑运算

除了传统的数学运算外,MATLAB还支持关系运算和逻辑运算。

如果你已经有了一些编程的经验,那对这些运算不会陌生。

作为所有关系表达式和逻辑表达式的输入,MATLAB把任何非0数值当作真,把0当作假。所有关系表达式和逻辑表达式的输出,对于真输出1,对于假输出0.

MATLAB为关系运算和逻辑运算提供了关系操作符和逻辑操作符,如下两表所示:

f4592fd6b5efd85f21403b85cbf01490.png
关系运算符符号

7f01b0ef3bc9bd67e4076b223dfc514c.png
逻辑运算符

除此之外,MATLAB还提供了若干关系运算函数和逻辑运算函数,分别如下表所示:

61495b91a44eb9911b42c2cd771b0af9.png
关系运算函数

b184f21ea711ba9e38aad81c0fd8b52b.png
逻辑运算函数

1.3矩阵及其运算

MATLAB最大的特色就是其强大的矩阵计算功能,在MATLAB中所有的计算都是以矩阵为单元进行的,可见矩阵是MATLAB的核心。

1.3.1矩阵的创建

由m行n列构成的数组a称为

阶矩阵,它总共由
个元素组成,矩阵元素记为
,其中i表示行,j表示列。

当m=n时,矩阵a称为方阵。当

时,所有的
,且m=n,得到的矩阵称为对角阵。

当对角阵的对角线上的元素全为1时,称为单位阵,记为I。

对于

阶矩阵w,当
时,称w是a的转置矩阵,记为

对于a为

的形式时,称a是m个元素的列向量,对于a为
的形式时,称a是n个元素的行向量。

矩阵的表示形式和数组相似,它以左方括号”[“开始,以右方括号”]“结束,每一行元素结束用行结束符号(分号”;“)或回车符分割,每个元素之间用元素分割符号(空格或”,“)分隔。建立矩阵的方法有直接输入矩阵元素、在现有的矩阵中添加或删除元素、读取数据文件、采用现有矩阵组合、矩阵转向、矩阵移位及直接建立特殊矩阵等。

例2:矩阵创建实例

解:MATLAB程序代码如下。

>>a=[1 2 3;4 5 6]

运行结果是创建了一个

的矩阵a,a的第1行由1、2、3这3个元素组成,第2行由4、5、6这3个元素组成,输出结果如下:
a = 1    2    3
    4    5    6

接着输入:

>>b=[a;11,12,13]    %添加一行元素[11,12,13]

运行结果是创建了一个

的矩阵b,b矩阵是在a矩阵的基础上添加一行元素11、12、13,组成一个
矩阵,输出结果如下:
b = 1    2    3
    4    5    6
    11   12   13

MATLAB中对矩阵元素的访问如下所示:

单个元素的访问:
,访问了第3行和第2列交叉的元素;

整列元素的访问:
,访问了第3列中的所有元素;

整行元素的访问:
,访问了第1行中的所有元素;

整块元素的访问:
,访问了一个
的子块矩阵。

MATLAB提供了很多个特殊矩阵的生成,下表列出了一些常用的生成函数,关于其他的特殊矩阵生成函数及其使用格式,请参见联机帮助:

39edb6a75977cc1cc7ec7ad882cd1f16.png
MATLAB常用特殊矩阵生成函数

例3:特殊矩阵生成函数使用实例。

解:MATLAB程序代码如下。

>>a=[1,2,3;4,5,6;7,8,9]; b=tril(a)   %生成下三角矩阵

运行结果是生成了b矩阵,它是调用下三角矩阵生成函数tril( )生成的a矩阵的下三角矩阵,输出结果如下。

b=1    0    0
  4    5    0
  7    8    9

1.32矩阵的运算

矩阵与矩阵之间可以进行如下表所示的基本运算。

(注:在进行左除”/“和右除”“时,两矩阵的维数必须相等。)

277761731126c63164d045cca9f29b24.png
矩阵的基本运算

例4:矩阵基本运算实例。

解:MATLAB程序代码如下。

>>a=[1,2;3,4];    b=[3,5;2,9];    div1=a/b;    %矩阵的左除
>>div2=ba    %矩阵的右除

两矩阵a与b进行了左除和右除运算,输出结果如下。

div1=0.2941    0.0588               div2=-0.3529    -0.1176
     1.1176    -0.1765                   0.4118    0.4706

MATLAB提供了多种关于矩阵的函数,下表列出了一些常用的矩阵函数运算。

779da9f389c151cd9f001b70eebb9efd.png
常用矩阵函数运算

例5:矩阵函数运算实例。

解:MATLAB程序代码如下。

>>a=[1,3,5;2,4,6;7,9,13];    [b,c]=eig(a)    %求取矩阵的特征值和特征向量

通过函数eig( )计算矩阵a的特征向量b和特征值c,输出结果如下。

b=-0.3008    -0.7225    0.2284
  -0.3813    -0.3736    -0.8517
  -0.8742     0.5817    0.4717
c=19.3341          0        0
   0         -1.4744        0
   0               0    0.1403

矩阵分解常用于方程求根,下表列出了一些常用的矩阵分解运算。

7536fc30c526d055bc758e7942e43e77.png
常用矩阵分解运算函数

例6:矩阵分解运算函数使用实例。

解:MATLAB程序代码如下。

>>a=[6,2,1;2,3,1;1,1,1];   [L,U,P]=lu(a)    %对矩阵进行LU分解

通过函数lu( )对矩阵a进行LU分解,得到上三角阵U、下三角阵L、置换矩阵P,输出结果如下。

L=1.0000           0           0            U=6.0000    2.0000    1.0000
  0.3333      1.0000           0              0         2.3333    0.6667
  0.1667      0.2857      1.0000              0         0         0.6429
P=1    0    0
  0    1    0
  0    0    1

(#)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值