Matlab中文教程培训讲学.doc





《Matlab中文教程培训讲学.doc》由会员分享,可在线阅读,更多相关《Matlab中文教程培训讲学.doc(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。Matlab中文教程-MatLab简介MATLAB是什么?典型的使用包括:数学和计算算术发展模型,模拟,和原型数据分析,开发,和可视化科学和工程图学应用发展包括图形用户界面设计MATLAB表示矩阵实验室。MATLAB系统MATLAB系统由5主要的部分构成:1.MATLAB语言。这是高阶的矩阵/数组语言,带控制流动陈述,函数,数据结构,输入/输出,而且面向目标的编程特点。Ops操作符和特殊字符。Lang程序设计语言作。strfun字符串。iofun输入/输出。timefun时期和标有日期。datatype
2、s数据类型和结构。2.MATLAB工作环境。这是你作为MATLAB用户或程序编制员的一套工具和设施。3.制图这是MATLAB制图系统。它为2维上,而且三维的数据可视化,图象处理,动画片制作和表示图形包括高阶的指令在内。它也为包括低阶的指令在内,允许你建造完整的图形用户界面(GUIs),MATLAB应用。制图法功能在MATLAB工具箱中被组织成5文件夹:graph2d2-的维数上的图表。graph3d三维的图表。specgraph专业化图表。graphics制图法。uitools图形用户界面工具。4.MATLAB的数学的函数库。数学和分析的功能在MATLAB工具箱中被组织成8文件夹。elmat初
3、步矩阵,和矩阵操作。elfun初步的数学函数。specfun专门的数学函数。matfun矩阵函数用数字表示的线性的代数。datafun数据分析和傅立叶变换。polyfun插入物,并且多项式。funfun功能函数。sparfun稀少矩阵。5.MATLAB应用程序接口(API)。这是允许你写C、Fortran语言与MATLAB交互。关于SimulinkSimulink?MATLAB为做非线性的动态的系统的模拟实验的交互式的系统。它是允许你通过把方框图拉到屏幕,灵活地窜改它制作系统的模型的用图表示的鼠标驱动的程序。实时工作室?允许你产生来自你的图表块的C代码,使之能用于各种实时系统。关于工具箱工具箱
4、是为了解答特别种类的问题扩展MATLAB环境的MATLAB函数的综合的(M-文件)收集MatLab工作环境命令窗口若输入A=123;456;7810按下回车键后显示如下A=1234567810清除命令窗口clc这并不清除工作间,只是清除了显示,仍可按上箭头看到以前发出的命令数据格式命令x=4/31.2345e6formatshort1.33330.0000formatshorte1.3333e+0001.2345e006formatshortg1.33331.2345e006formatlong1.333333333333330.00000123450000formatlonge1.33333
5、3333333333e+0001.234500000000000e006formatlongg1.333333333333331.2345e006formatbank1.330.00format+formatrat4/31/810045formathex3ff55555555555553eb4b6231abfd271若最大的元素大于1000或小于0.001,则显示short或long格式时时会加上一个比例还有两个格式:formatcompactformatloose禁止结果的显示在命令后加上分号,则屏幕上不会立即显示出结果,这在运算大的数据量时十分有用,如下命令产生100*100的幻方:A=m
6、agic(100);长命令行如想另起一行输入命令,在末尾加上.即可,如:s=11/2+1/31/4+1/51/6+1/7.1/8+1/91/10+1/111/12;MatLab工作间你可用who或whos来察看当前工作间中有哪些变量,如:whosNameSizeBytesClassA4x4128doublearrayD3x5120doublearrayM10x140cellarrayS1x3628structarrayh1x1122chararrayn1x18doublearrays1x510chararrayv1x1428chararrayGrandtotalis93elementsusin
7、g984bytes若要从工作间中删除所有的变量,用clear保存、重载工作间你可以将工作间保存为一个二进制的M文件,以后还可以恢复回来:savejune10也可只保存工作间中的部分变量值savejune10xyz重载时只需输入loadjune10文件名保存在字符串中这样可以像调用函数一样调用工作间save(myfile,VAR1,VAR2)A=myfile;load(A)与下面的命令相同savemyfileVAR1VAR2loadmyfile下面的命令把1至10的平方值分别存放在data1至data10中:file=data;fori=1:10j=i.2;save(fileint2str(i)
8、,j);end查找路径当你输入“yourpig时发生了什么呢?1:察看是否是变量;2:察看是否是内建函数;3:察看当前目录下是否有文件:yourpig.m;4:察看查找目录下是否有文件:yourpig.m;对于查找路径中的文件,what显示当前目录下的文件,加上路径后可显示输入的路径下所有的MatLab文件.如:whatmatlab/elfun以下二命令分别显示、编辑m文件typerankeditrank图像窗口下面的命令产生一个与命令窗口隔离的图形窗口,figureplot函数则会在新的窗口中绘制图形,如t=0:pi/100:2*pi;y=sin(t);plot(t,y)则有如下图形:寻求帮
9、助下面的函数在寻求帮助时十分有用:help列出你所寻求帮助的函数的功能描述;lookfor列出所有函数的功能描述中含有你所输入的内容的函数的简介如:helpinverse显示inverse.mnotfound.但如输入lookforinverse则显示INVHILBInverseHilbertmatrixACOSHInversehyperboliccosineERFINVInverseoftheerrorfunctionINVMatrixinversePINVPseudoinverseIFFTInversediscreteFouriertransformIFFT2Twodimensionali
10、nversediscreteFouriertransformICCEPSInversecomplexcepstrumIDCTInversediscretecosinetransform数据分析和统计面向列的数据集这年头似乎十分风行”面向”这个词,这儿故也套用,其英文为Column-OrientedDataSets,可理解为MatLab按列的存储方式来分析数据,下面是一个例子:TimeLocation1Location2Location301h001111902h007131103h0014172004h001113905h0043516906h0038467607h006113218608h0
11、07513518009h00388811510h0028365511h0012121412h0018273013h0018192914h0017151815h0019364816h0032471017h0042659218h00576615119h0044559020h0011414525721h0035586822h0011121523h001391524h001097以上数据被保存在一个称为count.dat的文件中1111971311141720111394351693846766113218675135180388811528365512121418273018192917151819
12、36483247104265925766151445590114145257355868111215139151097下面,我们调入此文件,并看看文件的一些参数loadcount.datn,p=size(count)n=24p=3创建一个时间轴后,我们可以把图画出来:t=1:n;set(0,defaultaxeslinestyleorder,-|-|-.)set(0,defaultaxescolororder,000)plot(t,count),legend(Location1,Location2,Location3,0)xlabel(Time),ylabel(VehicleCount),gr
13、idon足以证明,以上是对个对象的次观测基本数据分析函数(一定注意是面向列的)继续用上面的数据,其每列最大值均值及偏差分别为:mx=max(count)mu=mean(count)sigma=std(count)mx=114145257mu=32.000046.541765.5833sigma=25.370341.405768.0281重载函数,还可以定位出最大最小值的位置mx,indx=min(count)mx=797indx=22324试试看,你能看懂下面的命令是干什么的吗?n,p=size(count)e=ones(n,1)x=counte*mu点这看看答案!下面这句命令则找出了整个矩阵
14、的最小值:min(count(:)ans=7协方差及相关系数下面,我们来看看第一列的方差:cov(count(:,1)ans=643.6522cov()函数作用于矩阵,则会计算其协方差矩阵.corrcoef()用于计算相关系数,如:corrcoef(count)ans=1.00000.93310.95990.93311.00000.95530.95990.95531.0000数据的预处理未知数据NaN(NotaNumber-不是一个数)被定义为未经定义的算式的结果,如0/0.在处理数据中,NaN常用来表示未知数据或未能获得的数据.所有与NaN有关的运算其结果都是NaN.a=magic(3);a
15、(2,2)=NaNa=8163NaN7492sum(a)ans=15NaN15在做统计时,常需要将NaN转化为可计算的数字或去掉,以下是几种方法:注:判断一个值是否为NaN,只能用isnan(),而不可用x=NaN;i=find(isnan(x);x=x(i)先找出值不是NaN的项的下标,将这些元素保留x=x(find(isnan(x)同上,去掉NaNx=x(isnan(x);更快的做法x(isnan(x)=;消掉NaNX(any(isnan(X),:)=;把含有NaN的行都去掉用此法可以从数据中去掉不相关的数据,看看下面的命令是干什么用的:mu=mean(count);sigma=std(c
16、ount);n,p=size(count)outliers=abs(countmu(ones(n,1),:)3*sigma(ones(n,1),:);nout=sum(outliers)nout=100count(any(outliers),:)=;点这看看答案回归与曲线拟合我们经常需要把观测到的数据表达为函数,假如有如下的对时间的观测:t=0.3.81.11.62.3;y=0.50.821.141.251.351.40;plot(t,y,o),gridon多项式回归由图可以看出应该可以用多项式来表达:y=a0+a1*t+a2*t2系数a0,a1,a2可以由最小平方拟合来确定,这一步可由反除号
17、来完成解下面的三元方程组可得:X=ones(size(t)tt.2X=1.0000001.00000.30000.09001.00000.80000.64001.00001.10001.21001.00001.60002.56001.00002.30005.2900a=Xya=0.53180.91910.2387a即为待求的系数,画图比较可得T=(0:0.1:2.5);Y=ones(size(T)TT.2*a;plot(T,Y,t,y,o,),gridon结果令人失望,但我们可以增加阶数来提高精确度,但更明智的选择是用别的方法线性参数回归形如:y=a0+a1*exp(-t)+a2*t*exp(
18、-t)计算方法同上:X=ones(size(t)exp(t)t.*exp(t);a=Xya=1.39740.89880.4097T=(0:0.1:2.5);Y=ones(size(T)exp(T)T.exp(T)*a;plot(T,Y,t,y,o),gridon看起来是不是好多了!例子研究:曲线拟合下面我们以美国人口普查的数据来研究一下有关曲线拟合的问题(MatLab是别人的,教学文档是别人的,例子也是别人的,我只是一个翻译而已)loadcensus这样我们得到了两个变量,cdate是1790至1990年的时间列向量(10年一次),pop是相应人口数列向量.上一小节所讲的多项式拟合可以用函数p
19、olyfit()来完成,数字指明了阶数p=polyfit(cdate,pop,4)Warning:Matrixisclosetosingularorbadlyscaled.Resultsmaybeinaccurate.RCOND=5.429790e20p=1.0e+05*0.00000.00000.00000.01266.0020产生警告的原因是计算中的cdata值太大,在计算中的Vandermonde行列式使变换产生了问题,解决的方法之一是使数据标准化预处理:标准化数据数据的标准化是对数据进行缩放,以使以后的计算能更加精确,一种方法是使之成为0均值:sdate=(cdatemean(cdat
20、e)./std(cdate)现在再进行曲线拟合就没事了!p=polyfit(sdate,pop,4)p=0.70470.921023.470673.859862.2285pop4=polyval(p,sdate);plot(cdate,pop4,cdate,pop,+),gridon在上面的数据标准化中,也可以有别的算法,如令年的人口数为余量分析p1=polyfit(sdate,pop,1);pop1=polyval(p1,sdate);plot(cdate,pop1,cdate,pop,+)res1=poppop1;figure,plot(cdate,res1,+)p=polyfit(sda
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 中文 教程 培训 讲学

限制150内