您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > Matlab计算与仿真
王国利信息科学与技术学院中山大学~isswglMatlab计算与仿真技术第四讲:交互式计算-II计算与仿真第三讲回顾交互式计算(II)第三讲提纲Matlab计算与仿真第三讲回顾Matlab的初识与概述-桌面:基本的工作环境(命令/历史/目录)-计算:运算操作/数据类型/联机帮助科学计算与仿真-是科学认知的必要手段-是信息技术的必要技能交互式计算(I)-命令行信息交互-变量管理(命名/创建/引用)Matlab计算与仿真综合练习一:找到如下矩阵中最大元素-提示1:首先需要查找最大值的函数回忆:lookformax???-提示2:了解如何使用这个函数回忆:help/docmax???交互式计算(续)152349726sin1sin(5)sin(2)sin3sin4sin(9)sin(7)sin2sin6Matlab计算与仿真交互式计算(续)-求解lookformax;%确定函数是否存在helpmax;%函数使用说明A=[1-5-2;…34-9;…-726];%创建矩阵max(max(A))%为什么两次?ans=6Matlab计算与仿真交互式计算(续)B=sin(A);%创建矩阵max(max(B))%求解ans=0.9585-讨论:与’:’组合使用技巧max(B(:));%与max(max(B))等价为什么?提示:B(:)将矩阵按列展开成向量Matlab计算与仿真交互式计算(续)综合练习二:利用函数sin在[0,Π]上产生长度为100的采样数据,以表格方式存储-回忆:linearspace(startValue,endValue,nElements)-提示:startValue=0,endValue=pi,nElements=100-求解:x=linespace(0,pi,100);%rowvectory=sin(x);%rowvectorxyTable=[x’y’];%tableformMatlab计算与仿真交互式计算(续)矩阵计算进阶-算术运算加减运算:相同阶数或一个为标量提示:A+b等价于[aij+b]乘法运算:相容阶数或一个为标量提示:A*b等价于[aij*b]除法运算:相容阶数且除矩阵非奇异或非零标量提示:A/b等价于[aij/b]注意:左右除的分别,即A/B不等价于B/AMatlab计算与仿真交互式计算(续)-非算术运算关系运算:==结果:返回布尔值矩阵条件:相同阶数或一个为标量提示:A==b等价于[aij==b]逻辑运算:&/|/~/xor以逻辑和为例,相同维数或至少一个为标量C=A&B;%cij=1iffbothaijandbijnonzeroscij=0otherwiseMatlab计算与仿真交互式计算(续)-矩阵函数数学函数:函数名通常以m为结尾标志提示:矩阵函数和函数矩阵的差异例如,expm(X)≠exp(X)logm(X)≠log(X)逻辑函数相同维数或至少一个为标量AND/OR/XOR提示:与逻辑运算一致Matlab计算与仿真交互式计算(续)-矩阵整形操作维数查询size(A);功能:返回行列值举例:A=[1:4;5:8;9:12]’;[m,n]=size(A)m=4n=3提示:通常与其他整形操作协作使用Matlab计算与仿真交互式计算(续)-矩阵整形操作向量长度查询length(b);功能:返回元素个数等价于max(size(b))元素个数查询numel(A);功能:返回元素个数等价于prod(size(A));prod([m,n]);%==m*n;Matlab计算与仿真交互式计算(续)-矩阵整形操作标量确认查询isscalar(b);功能:返回逻辑值向量确认查询isvector(b);功能:返回逻辑值空矩阵确认查询isempty(A);功能:返回逻辑值查询非零元素:find(A);%返回非零元素Matlab计算与仿真交互式计算(续)-矩阵整形操作重排操作reshape基本格式:reshape(A,m,n);功能:按列重排举例:A=[1:4;5:8;9:12]’;B=reshape(A,2,6)B=135791124681012提示:对二维信号处理特别有用Matlab计算与仿真交互式计算(续)-矩阵整形操作翻转操作fliplr(水平翻转)/flipud(上下翻转)/rot90(绕转)基本格式:fliplr(A);flipud(A);rot90(A);功能:按水平/上下翻转重排,或逆时针旋转90度举例:rot90(A)A=[1:3;4:6];ans=fliplr(A)flipud(A)36ans=ans=2532145614645123Matlab计算与仿真交互式计算(续)-矩阵整形操作拼接操作cat(dim,A1,A2,…);blkdiag(A1,A2,…);功能:按行或列拼接矩阵,或按对角块方式组织特别地cat(1,A,B);%==[A;B]cat(2,A,B);%==[A,B]举例:cat(2,A’,B’)A=[1:4];B=[5:8];ans=cat(1,A,B)15ans=26123437567848Matlab计算与仿真交互式计算(续)-矩阵整形操作块提取操作:diag(对角元素)/tril(下三角)/triu(上三角)基本格式:diag(A);%返回对角向量tril(A);%上三角元素清零triu(A);%下三角元素清零功能:提取对角块/下三角/上三角块举例:triu(A)A=[1:3;4:6];ans=diag(A)tril(A)123ans=ans=05611005450Matlab计算与仿真交互式计算(续)数据类型使用注解-更多的常用数据类型复数字符串多项式数组结构胞组对象Matlab计算与仿真交互式计算(续)关于复数-虚数单位内置变量:i/j(=sqrt(-1))i^2ans=-1提示:应尽量避免利用其自定义变量-内置函数abs%幅值exp%指数angle%复角imag%实部conj%共扼real%虚部Matlab计算与仿真交互式计算(续)-使用实例zeta=5;theta=pi/3;%幅值和复角z=zeta*exp(i*theta)z=2.5000+4.3301iabs(z)real(z)ans=ans=5.00002.5000angle(z)*108/piimag(z)ans=ans=60.00004.3301Matlab计算与仿真交互式计算(续)关于字符串-基本概念元素为字符的矩阵单引号方式赋值引用方式同矩阵-使用实例first=‘john’;length(name)last=‘coltrane’;ans=name=[first,’’,last]13name=johncoltraneMatlab计算与仿真交互式计算(续)-常用操作函数转换操作char操作功能:将整数转换成对应的ASCII码字符另:可将两个字符串拼接num2str操作功能:将数值矩阵转换成字符串文本str2num操作功能:将字符串文本转换成数值矩阵Matlab计算与仿真交互式计算(续)查询操作findstr功能:查找感兴趣的子字符串对比操作strcmp功能:比较两个字符串,返回逻辑值strncmp功能:只比较字符串的前n个字符Matlab计算与仿真strmatch功能:依行进行前端匹配查询返回前端匹配的行下标拼接操作strcat功能:行方式拼接字符串strvcat功能:列方式拼接字符串交互式计算(续)Matlab计算与仿真使用实例msg1=[‘thereare’,num2str(100/2.45),…‘inchinmeter’]msg1=thereare39.3701inchinmetermsg2=sprintf(‘thereare%5.2fcubic…inchesinaliter’,…1000/2.54^3)msg2=thereare61.02inchesinaliter交互式计算(续)Matlab计算与仿真both=strvcat(msg1,msg2)both=thereare39.3701inchinmeterthereare61.02inchesinaliterstrcmp(msg1,msg2)ans=0strncmp(msg1,msg2,9)ans=1交互式计算(续)Matlab计算与仿真findstr(‘in’,msg1)aus=1926i=strmatch(‘max’,strvcat(‘max’,…'minimax','maximum'))ans=13char([77,65,84,76,65,66])ans=MATLAB交互式计算(续)Matlab计算与仿真交互式计算(续)关于多项式-基本概念数学表达式求值计算c=[c1,c2,c3,…,cn,cn+1];polyval(c,x)1121()nnnnpxcxcxcxcMatlab计算与仿真交互式计算(续)卷积计算w=conv(u,v)%返回多项式系数向量重构操作c=poly(v)%返回多项式系数向量微分操作cdef=polyder(c)拟合操作c=polyfit(x,y,n)()()(1)jwkujvkjMatlab计算与仿真使用实例c=[321];polyval(c,[579])ans=85162262x=(0:0.1:2.5)';y=erf(x);c=polyfit(x,y,6)c=0.0084-0.09830.4217-0.74350.14711.10640.0004交互式计算(续)202erf()dxtxetMatlab计算与仿真d=conv(c,[579])ans=153146259dd=polyder(d)dd=60939225poly(roots(dd))ans=1.00001.55001.53330.4167交互式计算(续)Matlab计算与仿真10月1日为公休日过一个快乐的长假期!BeGoodDoRight!完成作业:57-58页/习题1-9特别提醒Matlab计算与仿真第四讲预告:交互式计算(III)(2007年10月8日)结束语
本文标题:Matlab计算与仿真
链接地址:https://www.777doc.com/doc-3381753 .html