MATLAB编程基础第1讲--基础介绍与变量
MATLAB编程基础之 MATLAB基础介绍与变量梁丙臣1一、MATLAB的发展历程 oMATLAB MATrix LABoratory o20世纪七十年代后期:时任美国新墨西哥大学计 算机科学系主任的Cleve Moler教授用FORTRAN 设计了一组程序接口,此即萌芽状态的MATLAB。 o1984年成立了MathWorks公司,并把MATLAB正 式推向市场。从这时起,MATLAB的内核采用C语 言编写,而且除原有的数值计算能力外,还新增了 数据图视功能。 o进入20世纪九十年代的时候,MATLAB已经成为 国际控制界公认的标准计算软件。 2主要版本o1993年推出MATLAB4.0版本 (1)推出了SIMULINK。这是 一个交互式操作的动态系统建模、仿真、分析集成环境。(2 )开发了与外部进行直接数据交换的组件,打通了MATLAB进 行实时数据分析、处理和硬件开发的道路。(3)推出了符号 计算工具包。(4)Notebook 实现了MATLAB与Word的无缝 连接。其升级版本MATLAB4.2c应用较广泛。 o1997年,MATLAB5.0版问世,紧接着是5.1、5.2,以及和 1999年春的5.3版,真正32位运算,功能强大,数值计算加快 ,拥有更丰富的数据类型和结构、更友善的面向对象、更加快 速精良的图形可视、更广博的数学和数据分析资源、更多的应 用开发工具。其中MATLAB5.3应用最广泛。o2001年推出了MATLAB6.0,直到现在广泛使用的MATLAB 6.5,其界面有较大的改观,计算速度有了比较大的改善,增 加了与Java的接口 。3二、MATLAB语言编程介绍oMATLAB中各种命令可以完成许多单一的任务,对于某些较为复杂 的问题,仅靠现有的命令或函数来解决,往往是难以达到目的 。为 此,要运用MATLAB编程语言编制程序,形成M-文件。o程序是使计算机完成各项运算的命令集,运行一个编制好的程序, 计算机会从第一条命令行开始,一行接一行地执行相应的命令,直 到终止。o程序一般包含:数据输入,数据处理和结果输出三部分,其中数据 处理是核心。程序编写调试完成后,需要存盘,形成永久性文件, 可以随时对它进行调用或修改。文件名以字母开头,但不能用专用变量名,如pi等。 oMATLAB中每一个命令都是一个M-文件。4MATLAB命令简单介绍 oMATLAB是建立在向量、数组和矩阵基础上的一种 分析和仿真工具软件包,包含各种能够进行常规运算 的“工具箱”,如常用的矩阵代数运算、数组运算、方 程求根、优化计算及函数求导积分符号运算等;同时 还提供了编程计算的编程特性,通过编程可以解决一 些复杂的工程问题;也可绘制二维、三维图形,输出 结果可视化。目前,已成为工程领域中较常用的软件 工具包之一。 5MATLAB应用与网上资源o工具箱信号处理、神经网络、鲁棒控制、系统辨识 、控制系统、图形处理、模糊逻辑、小波分 析、金融管理、概率统计、非线性控制等。o网络资源www.mathworks.comftp.mathworks.com6MATLAB安装o软件要求Windows:Linux:Adobe acrobat reader7MATLAB命令窗口o计算机安装好MATLAB之后,双击MATLAB 图标,就可以进入命令窗口,此时意味着系 统处于准备接受命令的状态,可以在命令窗 口中直接输入命令语句。8MATLAB程序执行方式o立即执行» 3.5*6.2ans =21.7000» » exp(j*3*pi/4)ans =-0.7071 + 0.7071i» 9MATLAB程序执行方式o立即执行x=-2*pi:0.1:2*piy=sin(x)plot(x,y)10o通用命令cd 显示或改变工作目录 hold 图形保持开关dir 显示目录下的文件disp 显示变量或文字内容type 显示文件内容path 显示搜索目录clear 清理内存变量save 保存内存变量到指定文件clf 清除图形窗口load 加载指定文件的变量pack 收集内存碎片diary 日志文件clc 清除工作窗quit 退出MATLABecho 工作窗信息显示开关! 调用dos命令11oclear xo% 清除变量x,如果指令为clear x*,则为 清除所有以x首字符的变量owhooclearo% 清除所有的变量12命令行键盘技巧o命令行键盘技巧 调用上一行home 光标置于当前行开头 调用下一行end 光标置于当前行末尾 光标左移一个字符esc 清除当前输入行 光标右移一个字符del 删除光标处的字符Ctrl 光标左移一个单词backspace 删除光标前的字符Ctrl 光标右移一个单词altbackspace 恢复上一次的删除CtrlC终止正在运行的程序(运行内部函数和MEX文件除外) 13oy1=sqrt(10)*sin(0.6*pi)/(2+sqrt(7)o% 用“”调回上面输入的指令oy2=sqrt(10)*cos(0.6*pi)/(2+sqrt(7)14o标点: 具有多种应用功能. 小数点及域访问符;区分行,取消运行显示等 续行符,区分列,函数参数分隔符% 注释标记() 指定运算先后次序! 调用操作系统运算 矩阵定义标志 赋值标记 用于构成单元数组 字符串标示符15MATLAB搜索路径oMATLAB的一切操作都是在其搜索路径中进 行的,如果调用的函数在搜索路径之外,系 统将认为该函数不存在。o路径设置方法l1、通过对话框设置在MATLAB主窗口菜单中【file】【 set Path】选项。l2、path命令16MATLAB帮助oMATLAB Help完善的HTML格式联机帮助系统,非常全面 。使用方法:1.从help菜单中选取;2.在命令窗口中执行helpdesk或doc。oPDF文档用Adobe acrobat reader阅读。17oLookfor根据用户提供的关键字搜索相关的函数。?lookfor diff SETDIFF Set difference. DIFF Difference and approximate derivative. POLYDER Differentiate polynomial. ODE113 Solve non-stiff differential equations, variable order method. ODE15S Solve stiff differential equations, variable order method. ODE23 Solve non-stiff differential equations, low order method. ODE23S Solve stiff differential equations, low order method. 18o帮助机理lHelp命令显示相应M文件的注释区lLookfor命令搜索路径中每个M文件的 第一行,扫描是否包含所要查询的字 符串。?help exa1This is an example.19ohelp eyeo% 显示eye函数帮助信息o olookfor inverseo% 搜索inverse显示结果o 20o其他帮助命令lExist 变量检验函数lWhat 目录中文件列表lWho 内存变量列表lWhos 内存变量详细信息lWhich 确定文件位置21owhoo% who查询的结果oWhoso% whos查询的结果o o% 这里大家直接在命令窗中试一下指令o 22Matlab的数据类型o变量变量不需要事先声明,也不需要指定变量类型,它会自动根据 所赋予变量的值或对变量的操作来确定变量的类型;赋值过程中 ,如果变量已存在,则用新值代替旧值,以新的类型代替旧的类 型。变量的命名规则:l变量名区分大小写;l变量名长度不超过63位,第63位之后的字符被忽略;l变量名以英文字母开头,变量名中可以包含字母、数字 、下划线,但不能使用标点。变量一般为局部变量,即仅在其调用的M文件内部有效;若要定 义全局变量,须在变量前加关键字global。23o常量matlab中预定义的一些特殊的量。i,j 虚数单位Realmin 最小的正浮点数,pi 圆周率Realmax 最大的浮点数,eps 浮点运算的相对精度Inf 无穷大NaN not a number ,不定值例如: ?pians =3.141624矩阵输入o;,空格等用法T=1 2 3;4 5 6;7 8 9T=1,2,3;4,5,6;7,8,9T=1 2 3;4 5 6;7 8 925?1/0Warning: Divide by zero.ans =Inf?0/0Warning: Divide by zero.ans =NaN26o定义变量时应避免与常量名相同,如果改变了某个常量 的值,可以用clear命令来恢复。?pi=1pi =1?clear pi ?pians =3.141627变量名判断oisvarname 8th_column %变量名第一个字母为数字,不正确 Ans=028o数字变量l数字变量的运算?258*369ans =95202?x=258*369x =95202?1233ans =1860867?sqrt(ans)ans =1.3641e+00329l数字的输入输出格式缺省为实数保留小数点后 4位浮点数表示。其输入格式与C语言一致:如:9 -73 0.1999 1.475e6输出格式由format命令控 制,只是影响屏幕显示效果 ,不影响内部存储和计算。?format long;pians =3.14159265358979?format long e;pians =3.141592653589793e+000?format long g;pians =3.1415926535897930MATLAB中数组、矩阵基本运算符运算 符号 举例 加法,a+b + 1 2+3 4 1,2+3 减法,a-b - 1 2-3 4 1,2-3 乘法,a*b * 1,2*3 1,2*3,4a.*b .* 1,2.*3,4=3,8 逆乘,左乘 ax=b x=ab=inv(a)*b右乘 / xa=b x=b/a=b*inv(a) 乘幂,方阵的幂 a2=a*a元素的幂 . a.2 x.331变量及数组输入 oMATLAB的变量及数组均是以向量或矩阵方式存储的 o1:向量方式输入x=1,2,3,4,5 %以向量(数组)方式给x赋值 y=(x(3)+x(5)/2*x(4) %调用x中的元素 z=sqrt(x) %每个元素开方 t=x' %向量x的转置赋给tu=x*t %向量的内积(u为向量x的模的平方) 32