您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Matlab基础培训XXXX57-8
Matlab基础培训简记5.7上午:1、helpelmat基本矩阵生成函数2、doc中的例子可直接按F9运行,不需要复制3、矩阵合并:C=[AB]&[A;B]4、统计相关函数helpdatafun矩阵的统计是对列操作,与向量的统计有所不同5、数学操作函数helpelfun数学操作是对向量2或者矩阵的每个元素进行操作6、Sizelengthnumel(矩阵元素个数)7、随机数分布函数在统计工具箱8、分段操作%%符的使用evluatecell,可以发布file里publication功能cellmode9、helpfileformatsmatalb支持的文件格式,操作函数可查看helpoifuntextscan-Readformatteddatafromtextfile.Textread复合数据格式中的说明文字会使用cell数组存储10、cell元包数组的生成a={1,'abc';int(8),{1}},使用的是大括号。读取的方式同样使用大括号。b=a{1,1};若是b=a(1,1)则产生新的cellarray10、日期三种格式datastr字符串datanum数字整数datavec向量(1*6)weekdayx=datenum('1/2/03')x=731583x=datestr('1/2/03')x=02-Jan-2003loadbelgmarriagedv=datavec(dates)5.7下午:1、在图中可现实特殊的字符sprintf(‘\n(字符)’),可参见附录A2、datetick函数xlimylimeditausmarriageaxes中可以看到效果gtext(‘')第七章联系最后的editboxoffice13、逻辑矩阵和逻辑索引在寻找特殊值时很有用Loadgasprices.matidx=(Germany3.5);Year(idx)可找到油价小于3.5的年份4逻辑操作函数关键字可查看iskeyword,编写流程控制语句等参见例子editifelseeditforlopeditwhileloop5、友好界面输入输出Dispfprintf写文件sprintf写字符串InputmenuEditnumguess[xphi,yphi]=ginpu(17)t让你选用多个数据点,给你返回坐标值:plot(peaks)[xphi,yphi]=ginput(3)6、三维空间曲面的绘制surfimagescimageColormap:a=jet(8)jet(16)bone(8)rand(8,3);imagesc(a)Contour绘制二维的等高线图还有Mesh绘制的网格,但网格不上色WaterfallribbonSpysurf1等editmembraneplots例子7、cov、corrcoef计算方差协方差相关系数8、多项式拟合ployfit(参数1,参数2,阶数),拟合后可用过ployval计算位置点值(预测)一维插值interp1二维插值interp29、平滑和卷积convnfilter等10、线性自回归模型fftgui演示M文件加密使用pcode生成.p文件写字板打开会是乱码5.8上午:1、m文件调试,fix小工具可帮户迅速定位和修改有错误的代码。但不能完全依赖此。2、调试断点中可使用设置断点的条件(右键设置n==8)对循环做多次时才停止,否则常规的会在第一次循环时就就停止,editforloop3、profiler里调试函数时间。可详细给出每行代码执行的时间和次数等信息,有助于快速定位需要优化的代码部分。如果只要单独显示程序运行总时间可使用tic,toc。4、代码中需要对矩阵预先分配内存可有效的提高程序的效率。把标量的操作变为向量的操作也可有效的提高效率editmakeA3,meshgrid()函数生成矩阵在对矩阵行列操作,其中可以看到函数只调用了一次。tic;A=makeA1(500,500);toc原始循环Elapsedtimeis0.833463seconds.tic;A=makeA2(500,500);toc预分配Elapsedtimeis0.201760seconds.tic;A=makeA3(500,500);toc向量化操作Elapsedtimeis0.011711seconds.即尽量避免使用for循环。5、数据类型:numberic(有符号和无符号各种位长,以及singleanddouble).logic.cell.structure.Functionhandle,userclass.6、函数句柄的使用:h=@(X,Y)X^+Y^2;h(1,2).短小的计算可使用比编写m执行效率高。作为工具箱里的函数句柄使用:例如求解器里的ode45等必须以句柄的形式传递。可参见ode45help文档。优化工具箱里的很多指令都必须使用函数句柄。信号处理1、sound听取信号的声音。Strips可每个多久绘制图形长数据的清晰完整的显示。fs=1000;ts=0:1/fs:2;x=250+240*sin(2*pi*fs.*ts);Strips(x,0.25,fs);sound(x,fs);%%fs=10000;t=0:1/fs:1.5;x=sawtooth(2*pi*50*t,1/2);plot(t,x),axis([00.2-11])工具箱Sptool可对信号做详细的查看和分析2、editnoisyC可听噪声的效果。3、重新采样函数;downsanpleupsampleresampleinterpdecimate(抽取,类似降采样,实际上时通过一个低通滤波),具体可参见help文档。4、xcorr计算相关函数,xcov计算协方差,conv计算卷积5、频谱分析:采样信号的频谱是对原始信号频谱的周期严拓,分析时只需要对-FS/2到FS/2或者0到FS分析;Fftshift可对绘制的横轴频率范围进行调整。a.加窗可降低旁瓣的影响。旁瓣会平滑,但代价是主瓣会展宽。Editwindft窗函数wintool工具箱,产生的窗可保存至workspace;常见的窗函数也可使用命令行使用,docsignal/windowb.zeropadding也可用来提高频谱的细节:edittestzeropad可查看信号处理工具箱的介绍。00.10.20.30.40.50.60.70.80.91-1-0.500.51TruncatedSignal01234567891001020304050DFTofTruncatedSignalMagnitude00.10.20.30.40.50.60.70.80.91-1-0.500.51Truncated,WindowedSignal0123456789100510152025DFTofTruncated,WindowedSignalMagnitude注意区分尖锋的区分,主要原因在于点间的分辨率。Fft的演试demo有:demo1palyshowfftdemophoneplayshowsunsppots5.8下午1、功率谱密度估计:A命令行方式子空间:EV(peig)MUSIC(Pmusic)分辨率更高,计算量大非参数:周期图perioddigramWelchmultipaper(pmtm)参数法:pyulear,pburg,pcov,B使用sptool里的工具箱。FS=1000;t=0:1/FS:2-1/FS;x=sin(2*pi*200*t)+0.01*sin(2*pi*300*t);sptoolC还可使用频谱对象来作频谱分析.Docpsd查看2、时变谱spetcrogram短时傅里叶分析。loadhandel0100200300400500600700800900100001020304050601024pointFFTwith1024datapoints01002003004005006007008009001000-1001020304050256pointFFTwith256datapoints020040060080010001200-20-10010203040501024pointFFTwith256datapoints01002003004005006007008009001000-1001020304050604096pointFFTwith1024datapointssound(y,Fs);spectrogram(y,kaiser(100,5),75,512,Fs)例子specgramdemoxpsoundHAL90003、线性时不变系统LTI差分方程Z变换[z,p,k]=Zftpk(b,a)把传递函数转换成零极点形式。Zplane(z,p)看零极点图各种形式的转换:Linearsystemtransformation冲击响应b=[120]a=[100.2]impz(b,a,10,1e3)10个点,采样频率1000Freqz(b,a)例子:edittransferplot可查看三维零极点图。得到零极点后可在sptool里涉及滤波器。可在此图中得到群时延,滤波器系数等。也可利用这个滤波器来实现信号通过滤波器的效果。滤波器的指令y=filter(b,a,x)。另外可使用离散滤波器对象。类似前面的频谱对象h。dfilt.strucuredocdfiltdocfvtool.3、IIR滤波器。A使用命令行的方式实现:EditIirtypes文件里具体查看0123456789x10-3-0.500.511.52nT(seconds)AmplitudeImpulseResponse00.10.20.30.40.50.60.70.80.91-200-150-100-500NormalizedFrequency(rad/sample)Phase(degrees)00.10.20.30.40.50.60.70.80.91-50510NormalizedFrequency(rad/sample)Magnitude(dB)可运行五种不同滤波器的频率响应。Bsptool里的fdatool工具箱来设计。设计好的滤波器可使用FILE下的generateMfile生成m文件代码。生成的都是滤波器对象而不是滤波器系数。DocfdesignC.任意响应滤波器设计yulewalk(n阶数,f频率点,m幅度响应)Editdirectstopdirectstop(10)directstop(20)4、FIR滤波器设计。相位线性好,但是阶数高,延时大主要方法是窗函数的方法。fir1(标准的四种)fir2(任意响应滤波器)firls(多通带滤波器,优化的方法而非窗函数)firpm(多带滤波器,求解最大最小优化误差)firclsfircos(升余弦滤波器)fircls1b=0.4sinc();fvtool(b,1);editwindemoWindemo(20)Windemo(20)可以看出阻带通带的变化。editfir1demoeditdirectstop2;00.10.20.30.40.50.60.70.80.9100.20.40.60.811.21.4ComparisonofResponseMagnitudesIdealYule-WalkerDesign:Order1000.10.20.30.40.50.60.70.80.9100.20.40.60.811.21.4ComparisonofResponseMagnitudesIdealYule-WalkerDesign:Order20012300.51IdealFrequencyResponseFrequencyMagnitude-100-50050100-0.1-0.0500.050.1IdealImpulseResponseTimeMagnitude-100-50050100-0.1-0.0500.050.1WindowedImpulseResponseTimeMagnitude012300.51
本文标题:Matlab基础培训XXXX57-8
链接地址:https://www.777doc.com/doc-959282 .html