




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010年桂林理工大学数学建模竞赛暑期培训班
MATLAB编程入门培训课程桂林理工大学理学院信息与计算科学教研室艾武学习方法MATLAB
基础入门MATLAB简介MATLAB基本操作MATLAB常用命令
设计提高MATLAB数组运算MATLAB矩阵运算MATLAB程序设计
综合应用MATLAB数值实验MATLAB统计实验MATLAB优化实验2课程目录MATLAB简介1MATLAB语言基础2MATLAB数值计算3MATLAB程序设计4MATLAB绘图531.MATLAB简介41.MATLAB简介1.1MATLAB发展历史1.2MATLAB应用领域1.3MATLAB工具箱1.4MATLAB安装文件1.5MATLAB操作界面1.6MATLAB文件类型1.7MATLAB常用命令1.8上机练习51.MATLAB简介Matlab——MatrixLaboratoryCleveMolerMatlab——MatrixLaboratory,该语言是美国NewMexico大学计算机系主任CleveMoler在70年代后期首先设计的.并于80年代初开发了第二代专业版.1984年,CleveMoler和JohnLitter成立了Mathworks公司,并开始把Matlab推向市场.(迈斯沃克公司)http://1.1MATLAB发展历史61.MATLAB简介目前,Matlab
已经成为国际上最流行的科学与工程计算的软件工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用前景的全新的计算机高级编程语言,有人称它为“第四代”计算机语言。就影响而言,至今仍然没有一个别的计算软件可与Matlab
匹敌。MathematicaMapleSAS
SPSSEviews
LINGOLINDO在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。1.2MATLAB应用领域71.MATLAB简介MatlabMainToolboxMatlab主工具箱ControlSystemToolbox控制系统工具箱CommunicationToolbox通讯工具箱FinancialToolbox财政金融工具箱SystemIdentificationToolbox系统辨识工具箱FuzzyLogicToolbox模糊逻辑工具箱Higher-OrderSpectralAnalysisToolbox高阶谱分析工具箱ImageProcessingToolbox图像处理工具箱LMIControlToolbox线性矩阵不等式工具箱ModelpredictiveControlToolbox模型预测控制工具箱μ-AnalysisandSynthesisToolboxμ分析工具箱1.3MATLAB工具箱81.MATLAB简介OptimizationToolbox优化工具箱PartialDifferentialToolbox偏微分方程工具箱RobustControlToolbox鲁棒控制工具箱SignalProcessingToolbox信号处理工具箱SplineToolbox样条工具箱StatisticsToolbox统计工具箱SymbolicMathToolbox符号数学工具箱SimulinkToolbox动态仿真工具箱SystemIdentificationToolbox系统辨识工具箱WaveletToolbox小波工具箱1.3MATLAB工具箱91.MATLAB简介1.4MATLAB安装文件101.MATLAB简介1.5MATLAB操作界面 快捷键F5运行111.MATLAB简介1.6MATLAB文件类型.mm文件.matdata文件.figfigure文件.mdlmodel文件.cdrstateflow文件.rptreportgenerator文件121.MATLAB简介help帮助查询lookfor帮助查询demo演示文档clc删除命令窗口的内容(已使用过的命令)clear删除内存中的变量(数据)clf删除图形窗口的内容who列出在MATLAB工作空间中已有的变量whos列出驻留变量的同时,还给出维数及性质home光标移到命令窗口的左上角↑调出刚才使用过的命令quit退出MATLABCtrl+C中断程序运行1.7MATLAB常用命令131.MATLAB简介version显示matlab版本what列出当前目录下的.m文件和.mat文件which<文件名>显示某个文件的路径loadname下载name文件中的所有变量到工作空间loadnamexy下载name文件中的变量x,y到工作空间savename保存工作空间变量到文件name.mat中savenamexy保存工作空间变量x,y到文件name.mat中size(变量名)显示当前工作空间中变量的尺寸length(变量名)显示当前工作空间中变量的长度pack整理工作空间内存vpa(x,n)显示n位小数的xdisp显示矩阵与文本1.7MATLAB常用命令141.MATLAB简介1.8上机练习152.MATLAB语言基础162.MATLAB语言基础2.1MATLAB数据类型2.2MATLAB数组运算2.3MATLAB向量运算2.4MATLAB矩阵运算2.5MATLAB字符串运算2.6MATLAB关系运算2.7MATLAB逻辑运算2.8上机练习172.MATLAB语言基础2.1MATLAB数据类型
MATLABMatlab数据类型1.数值型2.字符字符串3.元胞数组4.架构数组182.MATLAB语言基础2.1MATLAB数据类型 变量Matlab中变量名是以字母开头,可以由字母、数字或下划线组成
Matlab
区分大小写,它的命令和函数全是小写的
Matlab变量名不超过31个字符192.MATLAB语言基础2.1MATLAB数据类型 常量ansMatlab中的默认变量pi圆周率eps计算机中的最小数,浮点运算的相对精度inf无穷大,如1/0NaN不定值,如0/0、0*∞i或j复数中的虚数单位realmin最小可用正实数realmax最大可用正实数202.MATLAB语言基础2.1MATLAB数据类型 数字显示格式命令formatshort5位定点表示formatlong15位定点表示formatshorte5位浮点表示formatlonge15位浮点表示formatshortg5位定点和5位浮点中自动选择最好格式表示formatlongg15位定点和15位浮点中自动选择最好格式表示formathex16进制格式表示format+在矩阵中,用符号+、-和空格表示正号、负号和零212.MATLAB语言基础2.2MATLAB数组运算 表达式Matlab中的表达式由运算符、函数、变量名和数字组成Matlab
语句由变量和表达式组成,有两种常见形式:形式1:表达式形式2:变量=表达式若不想显示形式1或2的运算结果,可在表达式后加分号“;”222.MATLAB语言基础2.2MATLAB数组运算 运算符+加法-减法*乘法.*点乘/除法./点除^乘幂.^点乘幂\左除.\点左除232.MATLAB语言基础2.2MATLAB数组运算 数组的构造x=[01357910]x=[0,1,3,5,7,9,10]x=01357910手动法 数组用中括号,以空格或逗号为间隔输入元素242.MATLAB语言基础2.2MATLAB数组运算 数组的构造x=[0:0.5:2]x=00.50001.00001.50002.0000冒号法 a:步长:ba:b
(默认步长=1)y=[0:5]y=01.00002.00003.00004.00005.0000252.MATLAB语言基础2.2MATLAB数组运算 数组的构造x=linspace(0,pi,12)x=00.28560.57120.85681.14241.42801.71361.99922.28482.57042.85603.1416函数法 linspace(a,b,n)从a开始,到b结束,包含n个数据元素的数组[a:(b-a)/(n-1):b]262.MATLAB语言基础2.2MATLAB数组运算 数组的引用x=[12345]x(1:3)ans= 1
2 3x(n)表示数组中的第n个元素
x(n1:n2)表示数组中的第n1到n2个元素272.MATLAB语言基础2.2MATLAB数组运算 矩阵数组A=[2,4,6,8;1357;0000;1,0,1,0]以空格或逗号分隔,指定不同的列以分号或回车分隔,指定不同的行282.MATLAB语言基础2.2MATLAB数组运算 四则运算数组与标量间的四则运算x=[134;2,6,5;32,4]a=2*x-2a=0462108426292.MATLAB语言基础2.2MATLAB数组运算 四则运算数组间的四则运算,必须具有相同的维数,对应元素进行运算+-.*./.\a=[134;2,6,5;32,4]b=[231;412;453]c=365677777c=a+b302.MATLAB语言基础2.2MATLAB数组运算 四则运算a=[134;2,6,5;32,4]b=[231;412;453]c=2948610121012c=a.*bd=a./bd=0.50001.00004.00000.50006.00002.50000.75000.40001.3333a./b=b.\a312.MATLAB语言基础2.2MATLAB数组运算 幂运算数组的幂运算.^a=[134;2,6,5;32,4]c=a.^2c=1916436259416d=192935295258192938d=a^2322.MATLAB语言基础2.2MATLAB数组运算 幂运算a=[134;2,6,5;32,4]b=[231;412;453]c=127416625813264c=a.^b332.MATLAB语言基础2.3MATLAB向量运算 点积c=dot(a,b) c=a·b,相当于a*b’(a与b都是行向量)a=[24531]b=[38101213]c=137c=dot(a,b)342.MATLAB语言基础2.3MATLAB向量运算 叉积c=cross(a,b) c=a×b,a与b必须是3维向量a=[245]b=[3810]c=0 -5 4c=cross(a,b)352.MATLAB语言基础2.3MATLAB向量运算 混合积由dot和cross两个函数共同完成 abc=(a×b)·ca=[245]b=[3810]c=0 -5 4c=[0-54]d=dot(a,cross(b,c))362.MATLAB语言基础2.3MATLAB向量运算 向量函数max求最大值min求最小值sum求和length求长度mean求平均值median求中间值prod乘积sort从小到大排序372.MATLAB语言基础2.4MATLAB矩阵运算 特殊矩阵[]生成空矩阵eye(n,m)生成n×m单位矩阵ones(n,m)生成全部元素是1的矩阵zeros(n,m)生成全部元素是0的矩阵magic(n)生成魔方矩阵rand(n,m)生成0~1之间均匀分布的随机矩阵randn(n,m)生成均值为0,方差为1的标准正态分布的随机矩阵compan(a)生产矩阵a的伴随矩阵382.MATLAB语言基础2.4MATLAB矩阵运算 矩阵加法矩阵的四则运算A=[12;35;26]B=[24;18;90]C=36413116C=A+B392.MATLAB语言基础2.4MATLAB矩阵运算 矩阵乘法矩阵的四则运算A=[12;35;26]B=[241;890]D=182214657352622D=A*B402.MATLAB语言基础2.4MATLAB矩阵运算 矩阵除法在Matlab中矩阵的除法分左除“\”和右除“/”
X=A\B给出线性方程组AX=B的一个解
X=B/A给出线性方程组XA=B的一个解A\BB/Asym(A\B,'r')=
5/719/7-8/7-1-6/744/7754/7sym(B/A,'r')=
-2/78/713/7
1/717/725/7
4/726/737/7A=B=412.MATLAB语言基础2.4MATLAB矩阵运算 矩阵乘幂矩阵的幂运算^A=[213420;782021;173431]C=A^2C=343320741754355537662631353623122015422.MATLAB语言基础2.4MATLAB矩阵运算 矩阵转置、逆、行列式矩阵的转置、逆运算及行列式运算A=[120;25-1;410-1]C=A’C=12425100-1-1D=inv(A)e=det(A)D=52-2-2-110-21e=1432.MATLAB语言基础2.5MATLAB字符串运算 常用字符串函数size查看字符数组维数char把数字转换为字符串strcmp比较字符串strcat字符串连接upper转换为大写lower转换为小写findstr在字符串中找字符串strjust对齐字符数组strmatch查找匹配字符串deblank删除字符串中的空格442.MATLAB语言基础2.6MATLAB关系运算关系操作符<小于<=小于等于>大于>=大于等于==等于~=不等于运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。A=[14357]B=[26907]A==Bans=00001452.MATLAB语言基础2.7MATLAB逻辑运算逻辑操作符&与|或~非运算法则:若逻辑真,结果为1;若逻辑假,结果为0。a=1:2:11b=2:7(a<2)|(b>6)ans=10000146一、数学运算符其功能主要是进行各种数学运算,按其优先级别依次为:1.转置(.’)、共轭转置(’)、幂次(.^)、矩阵幂次(^)2.正、负号(+/-)3.乘法(.*)、矩阵乘法(*)、元素左右除(.\,/.)、矩阵左右除(\,/)4.加减法(+,-)5.冒号(:)先后赋值,如:x=1:2:547几点说明:在同一优先级中,运算自左至右完成,所以若对运算顺序不确定时,最好以“()”实现强制运算顺序。
Matlab的数学运算有时支持标量、矩阵混合运算,此时即将标量展开为适当矩阵(ScalarExpansion)
(举例)左除、右除的区别:对于矩阵,右除如A/B,相当于X*B=A的解矩阵;左除如A\B,相当于A*X=B的解矩阵.对于元素,右除(./)和左除(.\)也不相同482.MATLAB语言基础2.8上机练习493.MATLAB数值计算503.MATLAB数值计算3.1多项式运算3.2多项式插值3.3多项式拟合3.4上机练习513.MATLAB数值计算3.1多项式 构造p=[250414]poly2sym(p)ans=2*x^5+5*x^4+4*x^2+x+4poly2sym(p) p=[a0,a1,…,an],多项式降幂排列系数数组523.MATLAB数值计算3.1多项式 四则运算p1=[250414]; p2=[005132];
p=p1+p2ans=2*x^5+5*x^4+5*x^3+5*x^2+4*x+6+、-、conv(p1,p2)、deconv(p1,p2) 加减要补零,相同长度poly2sym(p)533.MATLAB数值计算3.1多项式 四则运算p1=[250414]; p2=[005132];
p=conv(p1,p2)ans=
10*x^8+27*x^7+11*x^6+39*x^5+19*x^4+33*x^3+15*x^2
+14*x+8+、-、conv(p1,p2)、deconv(p1,p2)poly2sym(p)543.MATLAB数值计算3.1多项式 四则运算p1=[250414]; p2=[005132];
[p,r]=deconv(p1,p2)p=0.4000 0.9200 -0.4240r=0000.86400.43204.8480
+、-、conv(p1,p2)、deconv(p1,p2)553.MATLAB数值计算3.1多项式 求导运算p1=[250414]h=polyder(p1)polyder(p)poly2sym(h)ans=10*x^4+20*x^3+8*x+1563.MATLAB数值计算3.1多项式 求值运算p1=[250414]h=polyval(p1,[3,4])polyval(p,s)数组规则 polyvalm(p,s)矩阵规则k=polyvalm(p1,[3,4;4,6])h=934 3400k=43414 62640
62640 90394573.MATLAB数值计算3.1多项式 求根运算p1=[256418]h=roots(p1)roots(p)h=
-1.7640-0.8679+1.3394i-0.8679-1.3394i0.5000+0.8001i0.5000-0.8001i583.MATLAB数值计算3.1多项式 多项式函数conv多项式乘法polyfit多项式拟合deconv多项式除法法polyval多项式求值poly求矩阵的特征多项式polyvalm多项式矩阵求值polyder多项式求导residue部分分式展开polyeig多项式求特征值roots求多项式的根593.MATLAB数值计算3.2多项式插值interp1(x,y,x1,’method’)nearest最近插值linear线性插值spline三次样条插值cubic三次插值x=4:15;y=[589152529313022252724];x=4:0.5:15;yn=interp1(x,y,x1,’nearest’);yl=interp1(x,y,x1,linear’);ys=interp1(x,y,x1,’spline’);yc=interp1(x,y,x1,’cubic’);plot(x,y,’o’,x1,yn,’-’);plot(x,y,’o’,x1,yl,’-’);plot(x,y,’o’,x1,ys,’-’);plot(x,y,’o’,x1,yc,’-’);603.MATLAB数值计算3.3多项式拟合x=linspace(x,y,n);
y=cos(x);
p=polyfit(x,y,6);
y1=polyval(p,x);polyfit(x,y,n)plot(x,y,’or’,x,y1,’-b’);
613.MATLAB数值计算3.4上机练习624.MATLAB程序设计634.MATLAB程序设计4.1M文件4.2数据的输入输出4.3程序结构控制4.4上机练习644.MATLAB程序设计4.1M文件 局部变量与全局变量globalABC
无论在脚本文件还是在函数文件中,都会定义一些变量。函数文件所定义的变量是局部变量,这些变量独立于其他函数的局部变量和工作空间的变量,即只能在该函数的工作空间引用,而不能在其他函数工作空间和命令工作空间引用。但是如果某些变量被定义成全局变量,就可以在整个MATLAB工作空间进行存取和修改,以实现共享。因此,定义全局变量是函数间传递信息的一种手段。654.MATLAB程序设计4.1M文件 M文件的编辑664.MATLAB程序设计4.1M文件 脚本文件x=linspace(x,y,n);
y=cos(x);
p=polyfit(x,y,6);
y1=polyval(p,x);一些命令的集合plot(x,y,’or’,x,y1,’-b’);
674.MATLAB程序设计4.1M文件 函数文件functiony=hanshu(x)
y=sin(x)+cos(x);function开头,编制一个函数文件,输入什么,输出什么[输出参数表]=函数名(输入参数表)684.MATLAB程序设计4.1M文件 常用数学函数sin(x)
正弦asin(x)
反正弦cos(x)
余弦acos(x)
反余弦tan(x)
正切atan(x)
反正切cot(x)余切acot(x)反余切abs(x)绝对值max(x)最大值min(x)最小值sum(x)求和sqrt(x)开平方exp(x)以e为底的指数log(x)自然对数log10(x)以10为底的对数sign(x)符号函数fix(x)取整694.MATLAB程序设计4.2数据输入与输出 键盘输入屏幕输出
x=input(‘请输入数据’);disp(x);
input disp
704.MATLAB程序设计4.2数据输入与输出 M数据文件存储\加载 save 存储save将所有工作空间变量存储在名为MATLAB.mat的文件中savefilename将所有工作空间变量存储在名为filename.mat的文件中savefilenameXYZ将工作空间的指定变量X、Y、Z存储在名为filename.mat的文件中714.MATLAB程序设计4.2数据输入与输出 M数据文件存储\加载 load 加载load加载名为MATLAB.mat的文件中的所有变量到工作空间loadfilename加载名为filename.mat的文件中的所有变量到工作空间loadfilenameXYZ加载名为filename.mat的文件中的X、Y、Z变量到工作空间724.MATLAB程序设计4.2数据输入与输出 外部文件导入 [filename,pathname]=uigetfile('*.xls');
%寻找源文件
file=[pathnamefilename];
%赋名
x=xlsread(file);
%格式转换为矩阵之后就用x来代表导入的这个矩阵。如excel里输入了123
456如下命令x(1,:)ans=
1
2
3.xls EXCEL文件数据导入734.MATLAB程序设计4.2数据输入与输出 外部文件导入 [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
.txt 记事本文件数据导入744.MATLAB程序设计4.2数据输入与输出 外部文件导入 file->importdata 按照提示进行.xls.txt754.MATLAB程序设计4.3程序结构控制 for循环for 循环控制命令格式:fori=n1:(step):n2 commands;end
作用:重复执行命令集commands.循环控制命令(for命令)764.MATLAB程序设计4.3程序结构控制 for循环例1:求和:s=1+2+…+n
n=input('请输入n='); s=0;fori=1:n s=s+i;
fprintf('i=%.0f,s=%.0f\n',i,s);end例2:求奇数和:s=1+3+5+…+(2k-1)
n=input('请输入n='); s=0;fori=1:2:n s=s+i;
fprintf('i=%.0f,s=%.0f\n',i,s);end774.MATLAB程序设计4.3程序结构控制 for循环例3:求阶乘:p=1×2×3×…×n=n!
n=input('请输入n='); p=1;fori=1:np=p*i;
fprintf('i=%.0f,p=%.0f\n',i,p);end例4:求e:e=1+1+1/2!+1/3!+…+1/n!
n=input('请输入n='); p=1;e=1;fori=1:n p=p*i;p1=1/p;e=e+p1;
fprintf('i=%.0f,p=%.0f,e=%.8f\n',i,p,e);end784.MATLAB程序设计4.3程序结构控制 for循环例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+…
n=input('请输入n='); pi=0;k=-1;fori=1:2:n k=(-1)*k;pi=pi+k*1/i;
fprintf('i=%.0f,pi=%.8f\n',i,4*pi);end794.MATLAB程序设计4.3程序结构控制 while循环while 条件循环命令条件循环命令(while命令)格式:while(conditionistrue) commands;end
作用:重复执行命令集commands.804.MATLAB程序设计4.3程序结构控制 while循环例6:求和:s=1+2+…+n<3000
s=0;k=1;whiles<3000 s=s+k;
fprintf('k=%.0f,s=%.0f\n',k,s);k=k+1;end例7:求e:e=1+1+1/2!+1/3!+…(1/n!<1.0e-8)
p=1;e=1;r=1;i=1;whiler>=1.0e-8 p=p*i;r=1/p;e=e+r;
fprintf('i=%.0f,r=%.9f,e=%.9f\n',i,r,e);i=i+1;end814.MATLAB程序设计4.3程序结构控制 if控制if 选择控制命令单项选择控制格式:if(conditionistrue) commands;end
作用:若条件成立,则执行命令集commands.
否则,不执行。824.MATLAB程序设计4.3程序结构控制 if控制例8:求n个实数中最大的数M
a=input('请输入数组a[n]=');[m,n]=size(a);M=a(1); fori=2:n ifM<a(i)M=a(i);end
fprintf('M=%.5f,a(%.0f)=%.5f\n',M,i,a(i));end834.MATLAB程序设计4.3程序结构控制 if控制if 选择控制命令多项选择控制格式:if(conditionistrue)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 31616-2025食品安全国家标准食用畜禽副产品加工卫生规范
- 无锡商业职业技术学院《第二外国语》2023-2024学年第一学期期末试卷
- 石家庄铁道大学《朗诵与演讲》2023-2024学年第二学期期末试卷
- 红河职业技术学院《医学图像处理实验》2023-2024学年第一学期期末试卷
- 重庆师范大学《中国历史文选(上)》2023-2024学年第二学期期末试卷
- 新疆医科大学《中国民族民间舞》2023-2024学年第二学期期末试卷
- 湖南中医药高等专科学校《钢琴即兴伴奏》2023-2024学年第一学期期末试卷
- 重庆艺术工程职业学院《材料测试与研究方法》2023-2024学年第二学期期末试卷
- 对外贸易材料采购合同
- 第三方担保合同书
- 社工服务质量保障方案
- 2024年江苏建筑职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 中国烟草公司招聘笔试试题
- 【工商管理专业毕业综合训练报告2600字(论文)】
- 2024年浙江省财务开发有限责任公司招聘笔试参考题库含答案解析
- 工作总结写作培训课件
- 活字印刷课件
- 前列腺炎疾病演示课件
- 丙酸血症疾病演示课件
- 消防安全隐患排查投标方案(技术标)
- 提高患者口服药服用的准确率品管圈成果汇报ppt模板
评论
0/150
提交评论