MATLAB程序设计语言.ppt

上传人:xin****828 文档编号:6289421 上传时间:2020-02-21 格式:PPT 页数:61 大小:412.50KB
返回 下载 相关 举报
MATLAB程序设计语言.ppt_第1页
第1页 / 共61页
MATLAB程序设计语言.ppt_第2页
第2页 / 共61页
MATLAB程序设计语言.ppt_第3页
第3页 / 共61页
点击查看更多>>
资源描述
MATLAB程序设计语言 Email nzhang532 课程安排 Chapter1Matlab系统概述Chapter2Matlab基本操作Chapter3Matlab图形系统Chapter4Matlab程序设计Chapter5Matlab基本应用领域Chapter6数据阵列类型与结构Chapter7字符串处理 上机安排 上机日期时段机房2011 3 198 00 12 00E楼2052011 4 028 00 12 00E楼2032011 4 098 00 12 00E楼2052011 4 1614 00 18 00E楼2082011 5 1414 00 18 00E楼203 MATLAB发展 Matlab的首创者是在数值线性代数领域颇有影响的CleveMoler博士Moler博士等一批数学家和软件家组成了Mathworks软件公司 专门从事Matlab的扩展与改进1982年推出了第一个版本现在每半年出一新版本201xa MATLAB简介 MATLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的 集数值分析 矩阵运算 信号处理和图形显示于一体 构成了一个方便的 界面友好的用户环境 被誉为 巨人肩上的工具 使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致 用Matlab编写程序犹如在演算纸上排列出公式与求解问题 所以又被称为演算纸式科学算法语言 在这个环境下 对所要求解的问题 用户只需简单地列出数学表达式 其结果便以数值或图形方式显示出来 MATLAB自问世以来 就是以数值计算称雄 MATLAB进行数值计算的基本单位是复数数组 或称阵列 这使得MATLAB高度 向量化 它不需定义数组的维数 并给出矩阵函数 特殊矩阵专门的库函数 使之在求解诸如信号处理 建模 系统识别 控制 优化等领域的问题时 显得大为简捷 高效 方便 这是其它高级语言所不能比拟的 MATLAB简介 MATLAB特点 在Matlab中 以复数矩阵作为基本编程单元 使矩阵操作变得轻而易举Matlab语句书写简单Matlab语句功能强大Matlab系统具有丰富的图形功能Matlab提供许多面向应用问题求解的工具箱函数Matlab易于扩展 移植 Chapter1Matlab系统概述 Matlab系统组成Matlab的重要部件Matlab搜索路径Matlab集成环境Matlab通用命令 Matlab系统组成 MATLAB系统由8个主要的部分构成 MATLAB的开发环境MATLAB的数学函数库编程与数据类型文件I O图形处理三维可视化创建图形用户界面外部接口 Simulink Simulink是一种强有力的仿真工具 它能让使用者在图形方式下以最小的代价来模拟真实动态系统的运行 Simulink准备有数百种预定义系统环节模型 最先进有效的积分算法和直观的图示化工具 依托Simulink强健的仿真能力 用户可在原型机制造之前就可建立系统的模型 评估设计并修补瑕疵 Simulink作为一种图形化的仿真工具 可用于对动态系统建模和控制规律的研究制定 由于支持线性 非线性 连续 离散 多变量和混合式系统结构 Simulink几乎可分析任何一种类型的真实动态系统 工具箱 Toolboxes 工具箱是为了解答特别种类的问题扩展MATLAB环境的MATLAB函数的集合 在工具箱中 Matlab提供了许多实用的函数 它给各个领域应用人员带来了方便 ControlsystemCommunicationsFinancialImageProcessingNeuralNetworkSignalProcessingWavelet Matlab集成环境 运行MATLAB的可执行文件 自动创建MATLAB指令窗口 CommandWindow 这种指令窗如图所示 命令窗口的是输入命令和输出结果的窗口 在这里输入的命令会立即得到执行 并输出 Matlab功能选单共有File Edit Debug Desktop Window Help六个主要功能 每个之下各又有下一层的功能 初学者 可以在指令窗键入demo 这可是学习的好帮手 一旦发现指令不知如何使用时 help doc命令将告诉你使用 Matlab的集成环境就是Matlab的编程环境 在这一环境中提供了许多编写 调试和执行Matlab程序的便利工具 Matlab集成环境 在MATLAB下进行基本数学运算 只需将运算式直接打入提示号 之后 并按入Enter键即可 MATLAB可以将计算结果以不同精确度的数字格式显示 我们可以在指令视窗上的功能选单上的Flie下选Preferences 更改NumericFormat的属性 或者直接在指令窗口中通过format命令加以控制 MATLAB利用了 二个游标键可以将所使用的指令调回来重复使用 按下 则前一次指令重新出现 之后再按Enter键 即再执行前一次的指令 而 键的功用则是往后执行指令 Ctrl C 即同时按Ctrl及C二个键 可以用来中止执行中的MATLAB的工作 Matlab集成环境 编辑M文件将Matlab语句按一定的顺序结合在一起 就得到了Matlab程序 其文件名的后缀为m 故称为M文件 Matlab提供了M文件的专门编辑 调试器 启动编辑器方式 2种 Matlab集成环境 Matlab的 m文件保存的命名规则 1 文件名为字母 数字和下划线组成的 第一个字符必须是字母2 文件名不要取为matlab的一个固有函数名 m文件名的命名尽量不要是简单的英文单词 原因是简单的单词命名容易与matlab内部函数名同名 结果出现一些莫名其妙的错误 3 文件存储路径一定要为英文 4 中间不能有空格和标点符号 工作目录的建立和设置 为方便管理 每个用户在使用Matlab前 尽量为自己建立一个专门的工作目录 即 用户目录 用来存放自己创建的应用文件 例如 首先打开资源管理器 在E驱动器下可以根据自己的喜好建立一个新文件夹 但应注意 该文件夹必须以英文开头 文件夹名字中可以包括字母 数字和下划线 不要使用其他的字符 更不要单纯使用数字或者中文命名 有时在运行matlab中一些莫名其妙的错误可能就是不规范的命名引起的 这与matlab中变量和文件名的命名原则是一致的 尽管MATLAB work允许用户存放用户文件 但最好把它仅作为临时工作目录来使用为了运行方便 在开始工作前把用户定义的目录设置为当前目录 方法是可直接在MATLAB命令窗口上方通过目录设置来实现 Matlab搜索路径 当用户输入一个标识符 例如value 时 Matlab按下列步骤进行处理 1 检查value是否为变量 2 检查value是否为内部函数 3 在当前工作目录下是否存在value m文件 4 在Matlab搜索路径上是否存在value m文件如果在搜索路径上存在多个value m文件 则只执行所找到的第一个value m文件 如果找不到 则给出出错信息 Matlab通用命令 管理命令和函数管理变量和工作空间控制命令窗口使用文件和工作环境启动和推出Matlab 管理命令和函数 helpMatlab函数和M文件在线帮助version版本号ver显示Mathworks产品的版本信息path控制Matlab的目录搜索路径addpath将目录添加到Matlab的搜索路径上rmpath从Matlab的搜索路径上删除目录whatsnew显示出Matlab 工具箱的Readme文件what直接列出当前目录下的M文件 MAT文件和MEX文件which函数和文件定位type列出文件doc在help浏览器窗口中打开帮助信息lookfor从所有帮助目录中查找关键字lasterr显示上一个出错信息error显示出错信息profile测量并显示出M文件执行的效率 管理变量和工作空间 who whos列出内存中的变量disp显示文本或阵列clear清除工作空间中的变量mlock防止M文件被删除munlock允许删除M文件size求阵列中维大小length求阵列或向量长度 等效于max size X save将工作空间变量保存到磁盘load从磁盘中恢复变量pack释放工作空间内存 控制命令窗口 echo执行过程中显示M文件format控制输出显示格式more控制命令窗口的分页显示 使用文件和工作环境 diary在磁盘文件中保存任务dir列出目录下的文件cd改变工作目录mkdir建立目录copyfile复制文件delete删除文件和图形对象edit编辑M文件inmem获得内存中的函数matlabroot获得Matlab安装目录fullfile从部分中构造文件全名fileparts获得文件的组成部分tempdir返回系统临时工作目录名tempname产生临时文件的唯一文件名 启动和退出Matlab命令 matlabrc启动Matlab的M文件startup启动Matlab的M文件quit终止 结束 Matlab Chapter2Matlab基本操作 表达式矩阵基础操作符和特殊字符基本数学函数逻辑函数 表达式 变量数值函数操作符 变量 变量名可以包含下划线 字母 数字 但中间不能有空格 标点变量名最好是描述性的 有意义的例如 day month year change rateMatlab区分大小写 例如NAME name变量的第一个字符必须为英文字母 而且不能超过31个字符 变量不需要预先定义 固定变量和常数 ans预设的计算结果的变量名epsMATLAB定义的正的极小值 2 2204e 16pi内建的 值Inf正无穷大NaN表示不定值i或j虚数单位nargin函数输入参数个数nargout函数输出参数个数realmax最大的正浮点数realmin最小的正浮点数 数值 十进制 3 8 39科学计数法 1 6e 21 3 24e20复数 4 3 6j 780 3 2e2i浮点数 范围在10 308 10308二进制数 十六进制数均当作字符串输入 通过字符串函数bin2dec hex2dec将其转换为十进制数 函数 函数分类 内部函数 Toolboxes中实用函数 用户自定义函数 函数用法 1 嵌套 x sqrt log z 2 多输入 theta atah2 y x 3 多输出 y i max x 操作符 算术运算 见P29 P46 关系运算逻辑运算 表达式 将变量 数值 函数用操作符连接起来 就构成了表达式 MATLAB书写表达式的规则与 手写算式 差不多相同 如果一个指令过长可以在结尾加上 代表此行指令与下一行连续 例如3 6ans 18 表达式示例 a 1 sqrt 10 2 b abs 3 5i c sqrt bessell 4 3 a i d sin exp 2 3 e pi d 矩阵基础 矩阵的输入矩阵的存储矩阵的操作 矩阵输入 输入元素列表从外部数据文件中读取矩阵利用Matlab内部函数与工具箱函数产生矩阵用户自己编写m文件产生矩阵 直接输入矩阵 输入元素列表a 123 456 789 b 1 3 4 6 7 9 矩阵整个元素列表用方括号扩起来矩阵行与行之间用分号或回车间隔矩阵行中的每个元素之间以空格或逗号间隔 外部数据文件输入矩阵 load读取ASCII码的DAT文档wavread读取Microsoft的WAV格式的音频文件imread从图像文件中读取图像数据fopen fread fclose构成的任意文件的读取 利用Matlab内部函数与工具箱函数产生矩阵 P32 eye建立单位矩阵eye m eye m n ones建立全1矩阵ones m ones m n ones m n p zeros建立全0矩阵zeros m zeros m n zeros m n p 利用Matlab内部函数与工具箱函数产生矩阵 rand产生 0 1 均匀分布的随机数和阵列rand rand m rand m n 产生一个2 3的 5 5 之间均匀分布的随机矩阵x 5 10 rand 2 3 产生一个 a b 之间均匀分布的随机矩阵x b a b rand m n 利用Matlab内部函数与工具箱函数产生矩阵 randn产生均值为0 方差为1的正态分布的随机数和阵列randn randn m randn m n 产生一个2 3的均值为3 方差为4的正态分布的随机矩阵x 3 sqrt 4 randn 2 3 产生一个均值为mean 方差为variance的m n的随机矩阵x mean sqrt variance randn m n 利用Matlab内部函数与工具箱函数产生矩阵 linspace产生线性空间向量y linspace a b y linspace a b n y linspace 1 5 5 y 12345 利用Matlab内部函数与工具箱函数产生矩阵 diag产生对角阵a diag d k d为向量表示向量d位于矩阵a的第k条对角线上 其他元素为0当k 0或缺省时 表示d位于主对角上 当k 0时 表示d位于主对角线之上的第k条对角线上当k 0时 表示d位于主对角线之下的第k条对角线上d 2 108 a diag d a 2000 100008 矩阵元素的存储和读取 矩阵存储 矩阵元素是按列存储的矩阵读取 1 只用一个下标来寻址 a i 表示存储器中的第i个元素2 用两个下标来寻址 a i j 表示矩阵中的第i行第j列的元素例如 a 123 102030 a 123102030 a 2 ans 10 a 2 1 ans 10 矩阵操作 矩阵的对角化X diag V k 当V为向量 则X为矩阵 V构成X的第k条对角线 其他元素为0当V为矩阵 则X为矩阵V中的第k条对角线上的数据矩阵重新排列 1 利用冒号 给定矩阵A B A 表示将A中所有元素排列成一维列向量 2 reshapeB reshape A m n 矩阵旋转rot90B rot90 A k 矩阵左右翻转fliplr矩阵上下翻转flipud矩阵的下三角阵triltril X k 矩阵的上三角阵triutriu X k 矩阵操作 阵列的连接catC cat dim A B 将矩阵A和B沿着第dim维连接起来 1维表示沿列方向 2表示沿行的方向矩阵的复制并平铺阵列repmatB repmat A m n 矩阵求和 sum对矩阵元素按列求和a 123102030456 sum a ans 152739 矩阵删除 利用空矩阵 删除指定的行或者列 a 2 表示删除a的第2行a 123456利用单下标删除单个元素或多个元素 剩余部分变成行向量 删除单个元素只有这种方式 a 3 a 14536 操作符和特殊字符 一 算术操作符 A B A B 相同尺寸简单加 减运算 A B 线性代数积A B 对应元素相乘A B A B 矩阵右 左 除右除A B相当于A inv B 左除A B相当于inv A BA B A B 矩阵对应元素右 左 除A B 矩阵幂 指数为标量或底数为标量 不可同时为标量A 矩阵转置 若A为复数矩阵 则求出共轭转置 A 矩阵转置 若A为复数矩阵 也不求共轭 操作符和特殊字符 二 Kron Kronecker张量积 K kron X Y 冒号 建立向量 阵列的下标或用于迭代 P48 j i k初始值为j 步长为i 终值为kA j 取A的第j列A i 取A的第i行A 等效于二维阵列 对矩阵而言 它等同于AA j k 取出A的第j j 1 j 2 k个元素A j k 取出A的第j列到第k列的数据A k 取出三维阵列A的第k列A 将A中的所有元素排列成列向量 操作符和特殊字符 三 逻辑操作符 有相应的m文件and or notA B等效为and A B A B等效为or A B A等效为not A XOR 异或操作C XOR A B 完成阵列A和B对应元素的异或操作关系操作符 1语句1elseifa 1语句2else语句3end 阵列与矩阵 MATLAB的运算事实上是以阵列 array 及矩阵 matrix 方式在做运算 而这二者在MATLAB的基本运算性质不同 矩阵是二维的 它采用线性代数的运算方式 在MATLAB的内部资料结构中 每一个矩阵都是一个以列为主 Column oriented 的阵列 Array 矩阵的基本算术操作 基本格式A BA BA BA BA BA A A必须是方阵 阵列与矩阵 阵列的运算强调元素对元素的运算阵列的基本算术操作 基本格式A BA BA BA BA BA A 阵列运算的特色 如果a b各代表二个不同的阵列 a与b之间的运算是元素对元素的方式 例如a a1 a2 an b b1 b2 bn a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn 阵列运算的特色 x 1 0 1 2 x是阵列x Columns1through91 00001 10001 20001 30001 40001 50001 60001 70001 8000Columns10through111 90002 0000 y exp x 2 exp x 2 是阵列运算y Columns1through92 71833 35354 22075 41957 09939 487712 935817 993325 5337Columns10through1136 966154 5982 阵列运算的特色 标量与阵列运算的差别 x 2 0 x是一标量 nume x 3 2 x 2 x 6 3 deno x 2 0 05 x 3 14 f nume deno 4 4792 x 1 5 注意x是一阵列 nume x 3 2 x 2 x 6 3 deno x 2 0 05 x 3 14 f nume deno 3 0144 4 47920 94842 27413 3333 时间和日期 P58 tic toc 测定程序运行时间 tictest m Date now clock可以得到当前的日期信息Etime cputime计算使用时间 CPU时间Datestr dateevcDatenumWeekday eomdaycalendar 基本数学函数 三角函数指数和对数函数复数函数取整和求余函数 rem mod fix朝零方向取整floor朝负无穷大方向取整ceil朝正无穷大方向取整round朝最近的整数取整 四舍五入 mod模数 即有符号的除后余数 M mod X Y X Y floor X Y rem除后余数R rem X Y X Y fix X Y sign符号函数 矩阵中的逻辑函数 all 测试矩阵或者向量所有元素是否都为非0all A 将A的列当做向量 得到由0 1构成的行向量all A dim any 测试任意非0any A 将A当做列向量 得到由0 1构成的行向量any A dim find 查找非0元素的值和下标k find x i j find x i j v find x exist 查找给定变量或文件是否存在is 检测某种状态 通配符 见81页 isa 检测给定类的对象logical 将数值转换成逻辑值 如何撰写MATLAB程序 我们前面各节所介绍在MATLAB所做的运算 是适合于所要计算的算式不太长或是想以交谈式方式做运算 如果要计算的算式很长有数十行或是须要一再执行的算式 则那样的方式就行不通了 MATLAB提供了所谓的M文件的方式 可让使用者自行将指令及算式写成程式然后储存成一个文件 其后缀是m 譬如test m 其中的test就是文件名称 要执行M file可以在指令视窗下直接键入该档名如test 以下的tutest m档是一个简易绘图程式做为示范使用M file M file tutest m SimpleplotforillustrationofusingM file 简易绘图以做为示范使用M filex linspace 0 2 pi 20 y sin x plot x y r xlabel x value ylabel y value title 2Dplot 写好上述程式后 以tutest m保存该文件可在指令视窗下键入tutest 即可执行已建立的tutest m程式 或者直接点击m文件编辑器上的运行按钮 图形结果 图形结果
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!