首页 理论教育 MATLAB基本数学功能:中学数学建模

MATLAB基本数学功能:中学数学建模

时间:2023-08-17 理论教育 版权反馈
【摘要】:③可以从一个字符串中提取子串.例如:ss=s得结果:ss=Kitty字符数组的运算.①字符以ASCⅡ码存储,用double命令可以查出字符的ASCⅡ码值.如:运行double得s1码值为:②用char命令可以实现ASCⅡ码向字符的转换.如:执行char[65666768]得:ans=ABCD③trcmp函数具有比较字符串的功能.如执行strcmp(str1,str

MATLAB基本数学功能:中学数学建模

1.算术运算(Arithmetic Computation)

MATLAB提供了两种运算方式:

(1)数组运算方式(Array computation):在数组中对应元素之间进行运算;

(2)矩阵运算方式(matrix computations):将标量当作1×1阶矩阵,一维数组当作一行或一列的矢量(即1×n阶或n×1阶的矩阵),二维数组当作m×n阶矩阵,然后按照矩阵的运算规则进行运算(这部分内容本书仅介绍加减乘).

注:两者输入的形式和书写方法相同,差别仅在于用不同的运算符号,执行不同的计算过程,数组的运算是对应元素之间的运算,而矩阵运算是根据矩阵的运算规则进行的.

(1)加、减运算(addition and subtraction).

矩阵与数组的加减运算没有区别,运算符均为“+”、“-”,运算方法相同,但两个运算对象必须是同阶矩阵,否则将给出错误信息.如下例:

运行结果给出错误信息:

Matrix dimensions must agree.(矩阵的维度必须一致)

但标量,即1×1阶矩阵可以和其他不同维数的矩阵进行加减运算,如:a+5

(2)乘除运算(Multiplication and division).

矩阵在进行乘除运算时与通常的运算符号相同(*,/,\),而数组在进行乘除运算时要在通常的符号前加“.”,如:“.*”和“./”(或“.\”)

①矩阵乘法:矩阵相乘的条件是前一矩阵的列数与后一矩阵的行数相同,如输入

x=[1 2 1;2 1 3];y=[2 0;1 3;0 1];

则结果为:

②数组的乘法(Array multiplication)

条件:a,b两数组必须有相同的维数.a.*b表示a和b中对应元素之间相乘,即c(i,j)=a(i,j)*b(i,j).如:

结果为:

③矩阵除法(略).

④数组的除法(Array division).

条件:a与b必须具有相同的维数.符号:“.\”或“./”,运算结果相同,a.\b表示b中的元素分别除以a中的对应元素,即c(i,j)=a(i,j)\b(i,j)=b(i,j)/a(i,j).如:

结果为:

(3)乘方(Power).

①矩阵的乘方(略).

②数组的乘方(Array power).符号:“.^”

条件:在底与指数均为数组的情况下,要求它们的维数必须相同.

a.当底和指数为同样大小的数组时,x.^y为对应的元素作乘方运算.如:

结果为:

这时执行的实际运算为:

b.若指数是标量p,执行的运算是底的每一个元素执相同幂次的运算.即

如:

得到结果为:

这时执行的运算为:

c.若底是一个标量p,指数是一个数组,执行的运算是用指数数组的每个元素对底进行乘方运算,即z(i,j)=p^x(i,j),形成新的数组.如:

结果为:

这时执行的运算为:

(4)转置(Transpose):行列转置,符号:“'”(用enter键左侧的按键输入)

如计算矩阵a的转置:

结果为:

2.数学函数 (Mathematic function)(见表2.3.1)

基本函数(Elementary function):三角函数(Trigonometric Function)、指数函数(Exponent function)、复数函数(Complex function)、取整和求余函数(round and remain function)等.

表2.3.1 常用基本数学函数

例1 朝零方向取整.

结果为:

三角函数按弧度计算.有两个函数需要特别加以区分,就是除后取模mod(x,y)与y符号相同,除后取余数rem(x,y)与x符号相同,当x与y符号相同时,mod(x,y)等于rem(x,y).

例2 求余函数rem.

结果为:

3.关系运算与逻辑运算(Relational calculus and Logical operation)

(1)关系运算(Relational calculus).

条件:对于两个矩阵的关系运算,两边的矩阵必须具有同样尺寸.

关系运算符(Relational operator):

<小于(less than)、<=小于等于(less than or equal to)、>大于(greater than)、>=大于等于(greater than or equal to)、==等于(equal to)、~=不等于(not equal to,NE).

例3 标量关系运算和矩阵关系运算.

结果为:

在程序的流程控制中,关系运算符常配合if,while,for,switch等控制命令使用.

(2)逻辑运算(Logical operation).

逻辑运算符(Logical operator):

&与(AND),|或(OR),~非(NOT)(www.xing528.com)

条件:对于两个矩阵的逻辑运算,两边的矩阵必须具有同样尺寸.

“~”是一元算符,当a为零时,返回信息为1,为非零时,返回信息为0.

例4 逻辑运算:

结果为:

4.基本字符处理功能(Elementary symbolic treatment function)

(1)字符数组的建立(Setting of symbolic array):

①字符串(string of character)就是字符数组(Character arry),MATLAB中所有字符串都用单引号界定后输入或赋值.例如:

结果为:

字符串中空格也是字符,上例为1×11阶矩阵.

②如同数值型矩阵一样,可以用方括号(square bracket)将字符串合并成更大的串.例如:

s=[s1,'!']

得结果:

s=Hello Kitty!

③可以从一个字符串中提取子串(sub string).例如:

ss=s(7:11)

得结果:

ss=Kitty

(2)字符数组的运算(Operation of symbolic array).

①字符以ASCⅡ码存储,用double命令可以查出字符的ASCⅡ码值.如:运行double(s1)得s1码值为:

②用char命令可以实现ASCⅡ码向字符的转换.如:执行char[65 66 67 68]得:

ans=ABCD

③trcmp函数具有比较字符串的功能.如执行strcmp(str1,str2),返回1表示str1=str2,返回0表示str1≠str2.

5.建立特殊数组(矩阵)

(1)用标准函数建立数组(或矩阵):用于辅助编程或运算的一些基本数组或矩阵.

(2)由小数组建立大数组:大数组可由方括号中的小数组建立,如有矩阵

可利用它建立一个大矩阵:

得到:

注:同一行的各个小数组要有相同的行数,在同一列上的各个小数组要有相同的列数.

(3)冒号“:”的使用:

产生一维数组(Initialize a one dimensional array).如:

x=1:5

得到:

即产生一个1到5的单位增量的一维数组.当然,也可产生任意增量的一维数组,如:

y=0:pi/4:pi

得到:

z=6:-1:1

得到:

(4)下标的使用(The using of subscript):

①元素定位:单个的数组元素的位置可在括号中用下标来表达.如:

其中a(3,3)=9,a(1,3)=3,a(3,1)=7,可用带下标的元素表达式进行运算和赋值产生新元素.如执行a(3,3)=a(1,3)+a(3,1)),则有:

下标可以是一个一维数组.对于矩阵来说,利用下标可以调用某些元素构成新的子数组.设b是一个10×10阶数组,则b(1:5,3)指b中的第1行到第5行处于第三列的元素组成5×1阶子数组.

b(1:5,7:10)指前5行处于后四列中的元素构成5×4阶的子数组.

b(:,[3,5,10])=c(:,1:3)表示将数组c的前三列赋值给数组b的第3、5、10列.

a(:,n:-1:1)即为由原来a数组中取n至1负增长的列元素组成一个新的数组,即将a矩阵左右翻转.

例5 矩阵元素的定位.

得到:

②改变数组尺寸.

例6 将一个2×3阶的数组改变为6×1阶.

得到:

即将a矩阵按列拼接为加长列向量.也可利用(:)置换数组元素.如:

a(:)=11:14

得到:

改变数组尺寸可以reshape命令实现.如:

得到:

也可以将矢量变为矩阵.例如

a=reshape(1:10,2,5)

得到:

③空数组:语句[]将一个0×0阶的数组,存在于工作空间,具有空尺寸,与起清除工作空间的clear命令完全不同.

如n<1时,程序x=1:n会产生空数组x.

若要将某些行与列从数组中移去,采用将其置为空数组是一种有效的方法.如

得到:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈