网站大量收购独家精品文档,联系QQ:2885784924

[工学]MATLAB讲稿_7.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]MATLAB讲稿_7

应用软件基础 主讲:刘国际 MATLAB程序设计基础 经典递归例程 N皇后问题(程序编写在m文件中) 需要讲述的问题 1、第五种程序执行流程:函数调用 这种流程与跳转有所不同 2、传值与传址 什么是传值和传址 MATLAB中的参数传递是怎样的 MATLAB程序设计基础 MATLAB程序设计基础 MATLAB程序设计基础 MATLAB程序设计基础 MATLAB程序设计基础 MATLAB程序设计基础 MATLAB程序设计基础 MATLAB程序设计基础 经典递归例程 皇后问题(程序编写在m文件中) 执行结果 MATLAB程序设计基础 经典递归例程 汉诺塔问题汉诺塔(又称河内塔)问题其实是印度的一个古老的传说。 开天辟地的神勃拉玛(和中国的盘古差不多的神吧)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。计算结果非常恐怖(移动圆片的次数)18446744073709551615,众僧们即便是耗尽毕生精力也不可能完成金片的移动了。可以计算一下,即使人用最快的速度移动圆片,也要用几百亿年才能完成上面数字所代表的次数。 MATLAB程序设计基础 经典递归例程 汉诺塔问题的算法 一位美国学者发现了一种非常简单的算法。 当盘子的个数为n时,移动的次数应等于2^n – 1(有兴趣的可以自己证明试试看)。 只要轮流进行两步操作就可以了。 首先把三根柱子按顺序排成品字型,把所有的圆盘按从大到小的顺序放在柱子A上,根据圆盘的数量确定柱子的排放顺序:若n为偶数,按顺时针方向依次摆放 A B C。 MATLAB程序设计基础 经典递归例程 汉诺塔问题的算法 (1)按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;若圆盘1在柱子B,则把它移动到C;若圆盘1在柱子C,则把它移动到A。 (2)接着,把另外两根柱子上可以移动的圆盘移动到新的柱子上。即把非空柱子上的圆盘移动到空柱子上,当两根柱子都非空时,移动较小的圆盘。这一步没有明确规定移动哪个圆盘,你可能以为会有多种可能性,其实不然,可实施的行动是唯一的。 反复进行(1)(2)操作,最后就能按规定完成汉诺塔的移动。 MATLAB程序设计基础 经典递归例程 汉诺塔问题也是程序设计中的经典递归问题。下面分别是使用递归算法、非递归算法编写的程序执行的结果。 MATLAB程序设计基础 2.4 m文件 2.4.3 m文件的调试 错误类型: 语法错误:matlab是解释执行语言,边解释边执行,语法错误导致运行环境对程序无法解释。 例子:P27例2-27 执行错误:运行期错误,程序可以编译通过,但是在执行过程中,出现异常。这类错误较难发现,程序运行过程中,如果出现NaN,Inf或空矩阵时,容易出现问题,用测试函数isnan、isinf、isempty等在容易出现这些值的地方进行判断并做适当处理。程序中要尽可能容错性,对参数、中间运算都要在容错性上做过考虑。 MATLAB程序设计基础 2.4 m文件 2.4.3 m文件的调试 调试技巧: 1、去掉程序中部分分号,输出中间结果,检查数据流是否有误; 2、用keyboard命令或者设置断点中断程序,通过查看工作区中的数据,查看是否有误; 3、把函数文件改为命令文件, 4、使用调试菜单或调试函数,调试函数见P28表2-8 MATLAB的使用 第三章:图形处理 MATLAB程序设计基础 图形制作步骤 准备数据 选定作图窗口与作图区域 调用作图命令或函数 设置图形格式 输出所作图形 MATLAB程序设计基础 图形制作步骤 准备数据 方式: 使用load命令,从文本文件中获取数据。load命令的用法: load 文件名 例子:在C盘根目录创建文本文件x.txt,文件内容: 1 2 3 4 在MATLAB中执行命令load c:\x.txt,工作区中的x变量的值会变为这个2×2矩阵。 MATLAB程序设计基础 图形制作步骤 准备数据 注意: load命令从文本文件获取数据,赋给与数据文件同名的变量。 如果要把文件中的数据赋给另一个变量,可以这样作: y=load(‘c:\x.txt’); MATLAB程序设计基础 图形制作步骤 准备数据 方式: 调用命令或函数(自编或已有)获取数据。 例子: x=-2*pi:0.01:2*pi;%调用已有命令创建数据 y=sin(x);%调用已有函数创建数据 MATLAB程序设计基础 图形制作步骤 准备数据 方式: 调用ginput函数,使用鼠标,从屏幕获

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档