三Matlab编程入门实例讲解和讨论_第1页
三Matlab编程入门实例讲解和讨论_第2页
三Matlab编程入门实例讲解和讨论_第3页
三Matlab编程入门实例讲解和讨论_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三Matlab编程入门实例讲解和讨论 Matlab编程实例讲解和讨论编程实例讲解和讨论主讲老师闫培光电子科学与技术学院主讲老师闫培光电子科学与技术学院yanpgszu.?几个函数的用法find、tic和toc,等(掌握),等(掌握)结题实例和讨论(重点)主要内容?结题实例和讨论(重点)?编写高效编程代码(掌握) 一、几个函数的用法(掌握)find:找到符合条件的元素所在的位置当作用在矩阵找到符合条件的元素所在的位置当作用在矩阵A上,它将找到A中满足条件的元素的角(是)标(是单下标形式)x=nan,nan,1,2,inf,5,nan,inf;i=find(isnan(x)|isinf(x);%Find badelements inxx(i)=;%and deletethemi=find(?isnan(x)&?isinf(x);%Find elementsthat arenot NaNand notinfinitex=x(i);%Keep thoseelementsx(isnan(x)|isinf(x)=;%Delete badelementstic和toc用来得到程序运行所花费时间 二、实例讲解和讨论例编写m函数,当输入一个变量x时能自动根据据x值来计算函数值第第11节节If的使用据据x值来计算函数值x(xA (3)&A (1)+A (3)A (2)&A (2)+A (3)A (1)p=(A (1)+A (2)+A (3)/2;s=sqrt(p*(p-A (1)*(p-A (2)*(p-A (3);disp(s);elsedisp(不能构成一个三角形。 )end例题将A矩阵用for循环写出来A=12345 二、实例讲解和讨论第2节for和while的使用12345234563456745678说明For循环更倾向于在已知计算步数的情况下使用,while更多应用在已知条件满足情况下的循环。 相比之下,更多应用在已知条件满足情况下的循环。 相比之下,while循环会更加快速的收敛。 讨论题如何编制程序?找出如何编制程序?找出A矩阵中值等于5的元素所在位置?的元素所在位置?sum=0;t=0;val=input(Enter anumber(end in0):);while(val=0)例题从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和时结束输入,求这些数的平均值和它们之和sum=sum+val;t=t+1;val=input(Enter anumber(end in0):);endif(t0)summean=sum/tends=1;n=100:500;for i=1:length(n)if rem(n(i),21)=0例题求100,500之间前5个能被21整除的整数。 整除的整数。 请改成用while循环编程求解?循环编程求解?m(s)=n(i);s=s+1;continue,endif s=6breakendenddisp(m)更简洁的方法?n=100;a=ones(1,n);for i=3:n例题用for循环指令来寻找Fibona数组中第一个大于数组中第一个大于10000的元素a (1)=1,a (2)=1,a(i)=a(i-2)+a(i-1)a(i)=a(i-2)+a(i-1);if a(i)10000a(i),break;endenddisp(i)for和while可以用来迭代(重要)%求1,2.,100的和s=0;for i=1:100,s=s+i;enddisp(s);如何来求解数的阶乘?如何使用如何来求解数的阶乘?如何使用while来做循环?知已知y=1+1/3+1/5+1/2n-1,当n=100时,求y的值?程序阅读a=zeros(1,80000);%Preallocationb=zeros(1,80000);)a (1)=1;b (1)=0;for k=2:80000a(k)=0.99803*a(k-1)-0.06279*b(k-1);b(k)=0.06279*a(k-1)+0.99803*b(k-1);end编写高效编程代码(掌握)在程序编制时,如果变量的大小随着计算会扩展,预先给变量设定好尺寸会使得代码更加高效在程序编制时,如果变量的大小随着计算会扩展,预先给变量设定好尺寸会使得代码更加高效clear,tica=zeros(1,10000);%Preallocatecount=0;for k=1:10000v=exp(rand (1)*rand (1);if v0.5%Conditionally addto arraycount=count+1;a(count)=v;endenda=a(1:count);%Trim theresulttoc在实际MATLAB编程中,采用循环语句会降低其执行速度,用其内在函数批量处理大矩阵可以有效提高计算速度编程中,采用循环语句会降低其执行速度,用其内在函数批量处理大矩阵可以有效提高计算速度矢量化运算 (1)知已知y=1+1/3+1/5+1/2n-1,当n=100时,求y的值?n=100;i=1:2:2*n-1;y=sum(1./i);矢量化运算 (2)function d=minDistance(x,y,z)%Find themin distancebetween aset ofpoints andthe originnPoints=length(x);d=zeros(nPoints,1);%Preallocater kfor k=1:nPoints%Compute distancefor everypointd(k)=sqrt(x(k)?2+y(k)?2+z(k)?2);endd=min(d);%Get theminimum distancefunctiond=minDistance(x,y,z)%Find themin distancebetween aset ofpoints andthe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论