《MATLAB应用MATLAB数据及运算.doc》由会员分享,可在线阅读,更多相关《MATLAB应用MATLAB数据及运算.doc(31页珍藏版)》请在金锄头文库上搜索。
1、第2章 MATLAB数据及运算21 变量及其操作一、变量命名规则1变量名、函数名对字母大小写是敏感的myfile与MyFile表示不同的变量sin是MATLAB定义的正弦函数名,但SIN、Sin都不是2变量名的第一个字符必须是英文字母3变量名最多可包含63个字符(英文、数字和下划线)4变量名中不能包含空格、标点my_exemple12是合法的变量名,12exemple、_exemple12、my exemple12、my.exemple12是非法变量名二、MATLAB默认的预定义变量每当MATLAB启动时,不经定义和赋值就会产生一些变量,称为MATLAB默认的预定义变量这些变量都可以重新赋值。
2、但最好不要对这些变量名重新赋值预定义变量含义预定义变量含义ans计算结果的缺省变量名nargin函数输入参数个数eps机器零阈值(机器的浮点运算误差限)narout函数输出参数个数Inf或inf无穷大,如1/0realmax最大正浮点数i或j虚数单位realmin最小正浮点数pi圆周率plasterr存放最新的错误信息NaN或nan不是一个数(Not a Number),如0/0,/lastwarn存放最新的警告信息例1 用键盘在MATLAB指令窗中输入以下内容epseps 机器的浮点运算误差限。PC机上eps的默认值为 2.220410-16 ,若某个量的绝对值小于eps,则可以认为这个量为
3、0。例2 用键盘在MATLAB指令窗中输入以下内容1/0,1.e1000,log(0)Inf 无穷大量 + 的MATLAB表示,也可以写成inf 。同样地,- 可以表示为 - Inf 。在 MATLAB 程序执行时,即使遇到了以 0 为除数的运算,也不会终止程序的运行,而只给出一个“除0”警告,并将结果赋成Inf ,这样的定义方式符合 IEEE 的标准。从数值运算编程角度看,这样的实现形式明显优于C语言。例3 用键盘在MATLAB指令窗中输入以下内容0/0,inf/inf,inf*0注意在MATLAB中,即使遇到以0为除数的运算,程序也不会终止运行。这时只给出一个警告,并将结果赋给inf或Na
4、NNaN 不定式( not a number ) ,通常由 0 / 0 运算、Inf / Inf 及其他可能的运算得出。 NaN 是一个很奇特的量,如 NaN 与Inf 的乘积仍为 NaN 。例4 用键盘在MATLAB指令窗中输入以下内容n= realmax,n= 1.7977e+309例5 用键盘在MATLAB指令窗中输入以下内容m= realmin,m=2.2251e-309i 和 j 若i或j量不被改写,则它们表示纯虚数量j 。但在 MATLAB 程序编写过程中经常事先改写这两个变量的值,比如在循环过程中常用这两个变量来表示循环变量。如果想恢复该变量,则可以用语句 i = sqrt(-1
5、)设置,即对 -1 求平方根。三、MATLAB运算符和表达式运算符操作数学表达式MATLAB运算符MATLAB表达式加a+b+a+b减a-b-a-b乘ab*a*b除ab/或a/b或ba幂abab注意所有运算都定义在复数域上例1 用键盘在MATLAB指令窗中输入以下内容u=sqrt(-4)注意对于方根,运算只给出处于第1象限的解例2 用左除()和右除(/)计算表达式的值用键盘在MATLAB指令窗中输入以下内容(5+cos(47*pi/180)/(1+sqrt(7)-2*i)、(1+sqrt(7)-2*i) (5+cos(180 47*pi)注意对于标量,左除()或右除(/)所得到的结果是一样的对
6、于矩阵,左除()和右除(/)所得到的结果是不一样的 AX=B A-1AX= A-1B X=A-1B=AB,XA=B XA A-1=B A-1 X= BA-1= B/A表达式表达式由变量名、运算符、函数名组成表达式按优先级和自左向右的顺序运算优先级从高向低的排序是:指数运算、乘除运算、加减运算括号可以改变运算的顺序赋值符“=”和运算符的两侧允许有空格复数和复数矩阵MATLAB把复数看成一个整体来处理(不像其它程序,把实部和虚部分开处理)虚数单位用预定义变量i或j表示复数z=a+bi=reiq直角坐标表示与极坐标表示之间的转换real(z):给出复数z的实部a=rcosqimag(z):给出复数z
7、的虚部b=rsinqabs(z):给出复数z的模r=sqrt(a2+b2)angle(z):以弧度为单位给出复数z的相角q=arctg(b/a)例1 写出复数表达式,计算用键盘在MATLAB指令窗中输入以下内容z1= 3 + 4i %书写格式1z2 = 1 + 2 * i %书写格式2z3=2*exp(i*pi/6) %书写格式2z=z1*z2/z3 注意%是注释号,在它后面及回车之前的输入部分是非执行的注释在格式1中,4i表示一个完整的虚数,4和i之间不能有空格在格式2中,i被看作一个预定义变量参与运算格式1的运算速度要比格式2快,宜于在循环中采用例2 复数矩阵的生成及运算 用键盘在MATL
8、AB指令窗中输入以下内容A=1,3;2,4-5,8;6,9iA=1,3;2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B 注意格式1仅用于复数标量的表达,不能表达复数矩阵例3 求上例复数矩阵C的实部、虚部、模和相角 用键盘在MATLAB指令窗中输入以下内容 C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi%以度为单位计算相角四、MATLAB的数据结构 数据型、符号型、字符串型、多维数组、单元数组、类数据型:可以单独输入,也可以赋值给数值变量符号型:可用于公式推导,得到数
9、学问题解析解字符串型:C语言中字符串是用双引号括起来的,而MATLAB字符串是用单引号括起来的1数据型: 双精度浮点数,占8字节(64位),指数11位,尾数53位,符号1位。 在一般情况下,数据的存储和计算都是以双精度进行的。但是,可以用format命令改变数据在屏幕上的显示格式指令含义formatformat short通常保证小数点后4位有效数字;对于大于1000的实数,用5位有效数字的科学记数形式显示format long15位数字表示format short e5位科学记数表示format long e15位科学记数表示format short g从format short和forma
10、t short e中自动选择最佳记数方式(缺省设置)format long g从format long和format long e中自动选择最佳记数方式format rat近似有理数表示format hex16进制表示format bank(金融)元、角、分表示format +正数、负数和零分别用、和空格表示例1:用format和format short格式显示p的数值输入:format(或format short) 回车输入:pi 回车例2:用format和format short格式显示1000p的数值输入:format(或format short) 回车输入:1000*pi 回车例3:分
11、别用format long、format short e、format long e、format short g、format long g、format rat和format bank格式显示p的数值例4:用format 格式分别显示p、p2p和pp的数值五、MATLAB常用函数三角函数函数名称数学表达MATLAB表达正弦sinsin反正弦arcsinasin余弦coscos反余弦arccosacos正切tgtan反正切arctgatan余切ctgcot反余切arcctgacot正割secsec反正割arcsecasec余割csccsc反余割arccscacsc双曲函数函数名称数学表达MA
12、TLAB表达双曲正弦shsinh反双曲正弦Arshasinh双曲余弦chcosh反双曲余弦Archacosh双曲正切thtan反双曲正切Arthatan双曲余切cthcoth反双曲余切Arcthacoth双曲正割sechsech反双曲正割Arsechasech双曲余割cschcsch反双曲余割Arcschacsch指数函数函数名称数学表达MATLAB表达自然指数函数exexp(x)自然对数函数lnlog常用对数函数log10log10以2为底的对数函数log2log22的幂函数2xpow2(x)平方根函数x1/2sqrt(x)复数函数MATLAB表达含义MATLAB表达含义MATLAB表达含义
13、abs模,或绝对值conj复数共轭real复数实部angle相角(弧度)imag复数虚部例:求-p的绝对值输入:abs(-pi)圆整函数和求余函数函数名称MATLAB表达含义例向+圆整函数(天花板函数)ceil不小于自变量的最小整数ceil()=?ceil(-)=?向0圆整函数fix向0方向取整数fix()=?fix(-)=?向-圆整函数(地板函数)floor不大于自变量的最大整数floor()=?floor(-)=?模除求余函数mod(x,y)y不等于0时,mod(x,y)x- y*floor(x/y);y=0时,mod(x,y)=x求余数函数rem(x,y)y不等于0时,rem(x,y)x- y*fix(x/y);y=0时,rem(x,y)=NaN向最近整数圆整函数round四舍五入到最邻近的整数round()=?, round(-)=?, round(6.5)=?符号函数signx0,sign(x)=1注意1若a为正整数,ceil, fix, floor, round函数之间的区别如图2对于模除求余函数mod(x,y)和求余数函数rem(x,y),y=rem(13,3)1y=mod(13,3) = 1y=rem(-13,-3) = -1y=mod(-13,-