已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab 编程: 实例讲解和讨论,主讲老师:闫培光 电子科学与技术学院 ,几个函数的用法:find、tic和toc,等(掌握) 结题实例和讨论(重点) 编写高效编程代码(掌握),主要内容,一、几个函数的用法(掌握),find:找到符合条件的元素所在的位置 当作用在矩阵A上,它将找到A中满足条件的元素的角标(是单下标形式),x=nan,nan,1,2,inf,5,nan,inf; i = find(isnan(x) | isinf(x); % Find bad elements in x x(i) = ; % and delete them,i = find(isnan(x) % Keep those elements,x(isnan(x) | isinf(x) = ; % Delete bad elements,tic和toc用来得到程序运行所花费时间,二、实例讲解和讨论,第1节If的使用,输入三角形的三条边,求面积。 【数学基础:当输入边长A(1),A(2),A(3)满足关系任意两边之和大于第三边时能够构成三角形,三角形面积等于s=sqrt(p*(p-A(1)*(p-A(2)*(p-A(3);其中 p=(A(1)+A(2)+A(3)/2;】,A=input(请输入三角形的三条边:); if A(1)+A(2)A(3) else disp(不能构成一个三角形。) end,例题:将A矩阵用for循环写出来,A = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8,说明:For循环更倾向于在已知计算步数的情况下使用,while更多应用在已知条件满足情况下的循环。 相比之下,while循环会更加快速的收敛。,二、实例讲解和讨论 第2节:for和while的使用,讨论题: 如何编制程序?找出A矩阵中值等于5的元素所在位置?,sum=0; cnt=0; val=input(Enter a number (end in 0):); while (val=0) sum=sum+val; cnt=cnt+1; val=input(Enter a number (end in 0):); end if (cnt 0) sum mean=sum/cnt end,例题:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和,s=1; n=100:500; for i=1:length(n) if rem(n(i),21)=0 m(s)=n(i); s=s+1; continue, end if s=6 break end end disp(m),例题:求100,500之间前5个能被21整除的整数。,请改成用while循环编程求解?,更简洁的方法?,n=100; a=ones(1,n); for i=3:n a(i)=a(i-2)+a(i-1); if a(i)10000 a(i), break; end end disp(i),例题:用for循环指令来寻找Fibonacc数组中第一个大于10000的元素: a(1)=1,a(2)=1,a(i)=a(i-2)+a(i-1),for和while可以用来迭代(重要),%求1,2.,100的和 s=0; for i=1:100, s=s+i; end disp(s);,如何来求解数的阶乘? 如何使用while来做循环?,已知 y=1+1/3+1/5+1/2n-1,当n=100时,求y的值?,程序阅读,a = zeros(1,80000); % Preallocation b = zeros(1,80000); a(1) = 1; b(1) = 0; for k = 2:80000 a(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, tic a = zeros(1,10000); % Preallocate count = 0; for k = 1:10000 v = exp(rand(1)*rand(1); if v 0.5 % Conditionally add to array count = count + 1; a(count) = v; end end a = a(1:count); % Trim the result toc,在实际MATLAB编程中,采用循环语句会降低其执行速度,用其内在函数批量处理大矩阵可以有效提高计算速度,已知 y=1+1/3+1/5+1/2n-1,当n=100时,求y的值?,n=100; i=1:2:2*n-1; y=sum(1./i);,矢量化运算(1),矢量化运算(2),function d = minDistance(x,y,z) % Find the min distance between a set of points and the origin nPoints = length(x); d = zeros(nPoints,1); % Preallocate for k = 1:nPoints % Compute distance for every point d(k) = sqrt(x(k)2 + y(k)2 + z(k)2); end d = min(d); % Get the minimum distance,function d = minDistance(x,y,z) % Find the min distance between a set of points and the origin d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年和谐的校园作文
- 经济学基础概念综合测试题及答案
- 考勤制度培训
- 健康生活与平衡的关联性分析基于测试结果的研究报告
- 家居装修设计流行趋势测试题及答案
- 2025年播音与主持艺术专业统考考试真题及答案
- 消防应急演练方案消防演练脚本
- 2025年电子商务师资格考试试题及答案
- 家庭教育实验课程测试题及答案详解
- 客户服务与沟通技巧测试及解析
- 抖音直播培训方案
- 2025宁夏回族自治区大学生乡村医生专项计划招聘工作人员13人考试笔试模拟试题及答案解析
- 学校食堂满意度测评及管理方案
- 【生】植物的生殖和发育 课件-2025-2026学年新教材北师大版八年级上册生物
- 2025云南楚雄州元谋县国有资产投资管理有限公司及所属子公司合同制员工招聘13人考试笔试备考试题及答案解析
- 糖尿病宣教-带着甜蜜去生活文档
- 小学语文教师素养大赛知识素养试题
- 2025年辐射安全与防护考试考核题库(附答案)
- 椭圆及其标准方程(第二课时)+课件-2025-2026学年高二上学期数学人教A版选择性必修第一册
- 北京市海淀区2025-2026学年高三上学期期中地理试题 含解析
- 2025版疾病控制护理护士培训大纲
评论
0/150
提交评论