您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第02章 MATLAB数据及其运算
第2章MATLAB数据及其运算一、MATLAB数据的特点MATLAB运算的基本单元是实数或复数元素组成的矩阵,大部分运算或命令都是在矩阵运算意义下执行的。变量与常量:1*1矩阵标量在MATLAB中,不需对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容自动进行配置。二、变量和数据1、MATLAB的数据类型MATLAB6.5版本可以使用的数据类型包括:数值型、字符串型、元胞型和结构型等,数值型又分为双精度型、单精度型和整数类,整数类又包括无符号类和符号类整数。MATLAB5.3版本以前MATLAB的数值类型只有一种——双精度型,之后为了提高存储及运行效率增加了其它数据类型。二、数据和变量2、MATLAB的数据1)数据的表示方式采用十进制形式表示,范围是10-309~10309。例如:-2、1.232.34e-56、5.68e122)复数的表示方式0.5000+0.8660i或0.5000+0.8660j0.5000+0.8660i或0.5000+0.8660j1*exp(i*pi/3)科学计数法2.34×10-56和5.68×1012复数的相位角例如:正确的变量名:a、A、a_1不正确的变量名:a中、1a、s%二、数据和变量变量的命名规则:变量的名字必须以英文字母开头,之后可以是任意字母、数字或下划线;变量名最多不能超过63个字符;变量名称区分字母的大小写。注:在MATLAB中具有特殊意义的名字不能用作用户定义的变量名。例如:ans、pi、if等。它们在MATLAB中具有特殊的含义。3、变量MATLAB中具有特殊意义的变量关键字a与A是不同的两个变量MATLAB的特殊变量特殊变量名含义ans如果用户没有定义变量名,系统用于计算结果存储的默认变量名。pi圆周率л(=3.1415926…)inf无穷大∞值,如1/0(演示)eps浮点数的精度,也是系统运算时所确定的极小值(=2.2204e-16)NaN不定量“notanumber”,如0/0或inf/inf(演示)nargin所用函数的输入变量个数nargout所用函数的输出变量个数i或j虚数i=j=sqrt(-1)flops浮点运算数realmin最小可用正实数realmax最大可用正实数+加-减*乘.*点乘/右除\左除^幂次方小于=小于等于大于=大于等于==等于~=不等于&与|或~非xor异或算术运算符关系运算符逻辑运算符三、MATLAB常用运算符优先级:逻辑非〉算术运算关系运算逻辑与〉逻辑或四、MATLAB赋值语句格式1变量=表达式功能:计算赋值号右端表达式的值,赋给变量。当键入回车键该语句被执行。语句执行之后,窗口自动显示出执行结果。例a=1+2*sin(1)a=2.6829例a=1+2*sin(1);例a=1+2*sin(1),b=2例a=1+2*sin(1)%后面是注释语句分割符语句后面跟随“;”不显示结果赋值号四、MATLAB赋值语句格式2表达式功能:计算表达式的值,赋给MATLAB的永久变量ans。例1+2*sin(1)ans=2.6829MATLAB常用数学函数函数名称函数名称sin(x)正弦asin(x)反正弦cos(x)余弦acos(x)反余弦tan(x)正切atan(x)反正切abs(x)绝对值max(x)最大值min(x)最小值sum(x)元素的总和sqrt(x)开平方exp(x)以e为底的指数sign(x)符号函数round(x)四舍五入gcd(x,y)整数x,y的最大公约数rem(x,y)除后取余数log(x)自然对数log10(x)以10为底的对数angle(x)复数相角conj(x)复数共轭imag(x)复数虚部real(x)复数实部函数使用注意事项所有函数名必须小写。函数一定是出现在赋值号的右边。每个函数对其自变量的个数和格式都有一定的要求,如使用三角函数时要注意角度的单位是“弧度”而非“度”。例如sin(1)表示的不是sin1°而是sin57.28578°。函数允许嵌套。例如:sqrt(abs(sin(225*pi/180)))。例1:设两个复数a=1+2i,b=3-4i,计算a+b,a-b,a×b,a/b。a=1+2i;b=3-4i;c=a+b;d=a-b;e=a*b;f=a/b;c,d,e,fc=4.0000-2.0000id=-2.0000+6.0000ie=11.0000+2.0000if=-0.2000+0.4000i例2:计算下式的结果,其中x=-3.5°,y=6.7°。)cos()sin(yxyxx=(-3.5)*pi/180;y=6.7*pi/180;z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y)))z=0.1772例3我国人口按2000年第五次全国人口普查的结果为12.9533亿,如果年增长率为1.07%,求公元2010年末的人口数。计算人口的公式为p1=p0(1+r)n其中:p1为第n年后的人口数量,p0为人口初值,r为年增长率。r=0.0107;n=2010-2000;p0=12.9533e8;p1=p0*(1.0+r)^np1=1.4408e+009五、数值显示格式MATLAB赋值语句执行结果的显示格式由format命令控制。如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有:format(short):短格式(5位定点十进制数)99.1253formatlong:长格式(15位定点十进制数)99.12345678900000formatshorte:短格式e方式(显示5位浮点十进制数)9.9123e+001formatlonge:长格式e方式(显示15位浮点十进制数)9.912345678900000e+001formatbank:按元、角、分(小数点后具有两位)的固定格式。99.12formathex:十六进制格式缺省方式[注]format命令只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。例x=1234567890x=1.2346e+9例x=1.234567890x=1.2346例x=1234567890;formatlongex=1.23456789000000e+9例x=1.234567890;formatlongxx=1.23456789000000清屏:clc:清除命令窗口的所有显示内容;退出MATLAB:(1)单击MATLAB命令窗口的“关闭”按钮。(2)在命令窗口File菜单中选ExitMATLAB命令。(3)在MATLAB命令窗口输入Exit或Quit命令。六、清屏和退出七、MATLAB的矩阵表示1、矩阵的存储结构在MATLAB中矩阵元素按列存储。在MATLAB中的存储顺序147258369123456789例要用MATLAB做矩阵运算,第一步是矩阵输入(定义),矩阵输入须遵循以下规则:①必须用中括号[]把所有矩阵元素括起来。②同一行的不同元素之间数据元素用空格或逗号(,)间隔。③用分号(;)指定一行结束。④也可分成几行输入,用回车代替分号。⑤数据元素可是数值、变量、表达式或函数,系统将自动计算。2、矩阵的输入方法一直接输入12345678910111213141516A例A=[1,2,3,4;5678;9101112;13141516]注意逗号、空格和分号的用法B=[1,sqrt(25),9,132,6,10,7*23+sin(pi),7,11,154abs(-8)1216]例15913261014371115481216B分成几行输入,用回车代替分号元素是表达式12343a0.707145iii例a=[1+2i,3,4+sqrt(-9);sin(pi/4),4,5+i]b=[1,3,4+sqrt(-9);sin(pi/4),4,5];c=[2,0,0;0,0,1];a=b+c*i如无“*”会出现什么现象方法二利用冒号表达式格式:e1:e2:e3功能:产生一个由e1开始到e3结束,步长为e2的行向量。例a=0.5:1:5a=0.50001.50002.50003.50004.5000例a=0.5:5a=0.50001.50002.50003.50004.5000冒号表达式中如果省略e2,则步长为1最后一个分量不大于e3如果e20?[0.5:5]?a=[0.5,1.5,2.5,3.5,4.5]例a=linspace(2,9,6)方法三利用函数生成格式1linspace(a,b,n)功能:创建从a开始,到b结束,有n个元素的线性等分行向量,n缺省值为100。a=2.00003.40004.80006.20007.60009.0000等价于a:(b-a)/(n-1):b例a=logspace(-1,-3,3)方法三利用函数生成格式2logspace(a,b,n)注意:将a到b平均分成n等分,设分点是x1,…,xn,1nxx[10,,10]-1到-3的3等分点是-1、-2、-3-1-2-3[101010]功能:创建从10a开始,到10b结束,有n个元素的线性等分行向量,n缺省值为50。a=0.10000.01000.0010方法四利用M文件产生3、多维矩阵(数组)的创建以三维矩阵为例。三维矩阵由行、列和页组成,第三维称为页,每一页包含一个由行和列组成的二维数组。例要求输入一个2行、2列、3页的三维矩阵,其第1、2、3页元素分别为:000000114433、、442044a(:,:,1)=[11;33;20];a(:,:,3)=4;如未对某元素、某行或某页赋值,其值为04、矩阵元素的操作A(m,n):第m行,第n列元素A(2,3)A(m,:):第m行元素(冒号表示全部)A(2,:)A(:,3)A(m1:m2,n1:n2):第m1行到第m2行和第n1列到第n2列的所有元素。A(1:2,2:3)例123456789A(m):第m个元素A(3)第3列ans=6ans=7ans=456ans=369ans=2356A(:):列向量。元素按矩阵的列进行排列。ans=147258369矩阵扩展:如果在原矩阵中一个不存在的位置上赋值,则该矩阵会自动扩展行列数,其他没有赋值的元素默认为零(变维结构)。A=123004560078900000010A(:)A(4,5)=10例123456789删除子块:如果将矩阵的子块赋值为空矩阵[],则相当于消除了相应的矩阵子块。1230045600A7891000200357010例A(4:5,:)=[]A=123004560078910123456B789101112例B(:,3:5)=[]B=1267812例A=[123;456];D=[789];123A456D789A=1103456A(1,2)=10A(1,:)=DA=789456A(1:2,1:2)=[12;34]A=123346A=[56;78]A=5678为矩阵元素赋值用向量为矩阵某一行元素赋值为矩阵的某一块元素赋值为矩阵元素赋值的同时,改变矩阵的维数(结构)123A456789例B=A(3:-1:2,1:3)B=789456C=A(end:-1:1,:)C=789456123D=[AC(:,[13])]D=123794564678913八、字符串在MATLAB语言中,字符串是指用一对单引号括起来的字符序列。例xm='ShandongUnivercityofScienceAndTechnology'在
本文标题:第02章 MATLAB数据及其运算
链接地址:https://www.777doc.com/doc-4050469 .html