Matlab中文教程.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Matlab中文教程.doc》由会员分享,可在线阅读,更多相关《Matlab中文教程.doc(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流Matlab中文教程.精品文档.MatLab简介MATLAB是什么? 典型的使用包括: 数学和计算 算术发展模型, 模拟,和原型 数据分析,开发,和可视化 科学和工程图学 应用发展包括图形用户界面设计MATLAB表示矩阵实验室。MATLAB系统MATLAB系统由5主要的部分构成: 1. MATLAB语言。 这是高阶的矩阵/数组语言,带控制流动陈述,函数,数据结构,输入/输出,而且面向目标的编程特点。 Ops 操作符和特殊字符。 Lang 程序设计语言作。 strfun 字符串。 iofun 输入/输出。 timefun 时期和标有日期。 da
2、tatypes数据类型和结构。 2. MATLAB工作环境。 这是你作为MATLAB用户或程序编制员的一套工具和设施。 3. 制图这是MATLAB制图系统。它为2维上,而且三维的数据可视化,图象处理,动画片制作和表示图形包括高阶的指令在内。它也为包括低阶的指令在内,允许你建造完整的图形用户界面(GUIs),MATLAB应用。制图法功能在MATLAB工具箱中被组织成5文件夹: graph2d 2-的维数上的图表。 graph3d 三维的图表。 specgraph 专业化图表。 graphics 制图法。 uitools 图形用户界面工具。 4. MATLAB的数学的函数库。 数学和分析的功能在M
3、ATLAB工具箱中被组织成8文件夹。 elmat 初步矩阵,和矩阵操作。 elfun 初步的数学函数。 specfun 专门的数学函数。 matfun 矩阵函数用数字表示的线性的代数。 datafun 数据分析和傅立叶变换。 polyfun 插入物,并且多项式。 funfun 功能函数。 sparfun 稀少矩阵。 5. MATLAB应用程序接口(API)。 这是允许你写C、Fortran语言与MATLAB交互。 关于 Simulink Simulink ? MATLAB为做非线性的动态的系统的模拟实验的交互式的系统。它是允许你通过把方框图拉到屏幕,灵活地窜改它制作系统的模型的用图表示的鼠标驱
4、动的程序。 实时工作室?允许你产生来自你的图表块的C代码,使之能用于各种实时系统。 关于工具箱工具箱是为了解答特别种类的问题扩展MATLAB环境的MATLAB函数的综合的(M-文件)收集 MatLab工作环境命令窗口若输入A = 1 2 3; 4 5 6; 7 8 10按下回车键后显示如下A = 1 2 3 4 5 6 7 8 10 清除命令窗口 clc这并不清除工作间,只是清除了显示,仍可按上箭头看到以前发出的命令数据格式命令 x = 4/3 1.2345e6 format short 1.3333 0.0000 format short e 1.3333e+000 1.2345e006 f
5、ormat short g 1.3333 1.2345e006 format long 1.33333333333333 0.00000123450000 format long e 1.333333333333333e+000 1.234500000000000e006 format long g 1.33333333333333 1.2345e006 format bank 1.33 0.00format + + format rat 4/3 1/810045 format hex 3ff5555555555555 3eb4b6231abfd271若最大的元素大于1000或小于0.001,
6、则显示short或long格式时时会加上一个比例还有两个格式:format compactformat loose禁止结果的显示 在命令后加上分号,则屏幕上不会立即显示出结果,这在运算大的数据量时十分有用,如下命令产生100*100的幻方:A = magic(100);长命令行 如想另起一行输入命令,在末尾加上.即可,如:s = 1 1/2 + 1/3 1/4 + 1/5 1/6 + 1/7 . 1/8 + 1/9 1/10 + 1/11 1/12;MatLab工作间你可用who或whos来察看当前工作间中有哪些变量,如:whos Name Size Bytes ClassA 4x4 128
7、double arrayD 3x5 120 double array M 10x1 40 cell array S 1x3 628 struct array h 1x11 22 char array n 1x1 8 double array s 1x5 10 char array v 1x14 28 char array Grand total is 93 elements using 984 bytes若要从工作间中删除所有的变量,用clear保存、重载工作间 你可以将工作间保存为一个二进制的M文件,以后还可以恢复回来:save june10也可只保存工作间中的部分变量值save june1
8、0 x y z重载时只需输入load june10文件名保存在字符串中 这样可以像调用函数一样调用工作间save(myfile,VAR1,VAR2) A = myfile; load(A)与下面的命令相同save myfile VAR1 VAR2 load myfile下面的命令把1至10的平方值分别存放在data1至data10中:file = data; for i = 1:10 j = i.2; save(file int2str(i),j); end查找路径 当你输入“yourpig时发生了什么呢?1:察看是否是变量;2:察看是否是内建函数;3:察看当前目录下是否有文件:yourpig
9、.m;4:察看查找目录下是否有文件:yourpig.m;对于查找路径中的文件,what显示当前目录下的文件,加上路径后可显示输入的路径下所有的MatLab文件.如:what matlab/elfun以下二命令分别显示、编辑m文件type rankedit rank 图像窗口 下面的命令产生一个与命令窗口隔离的图形窗口,figureplot函数则会在新的窗口中绘制图形,如t = 0:pi/100:2*pi; y = sin(t); plot(t,y)则有如下图形:寻求帮助下面的函数在寻求帮助时十分有用:help 列出你所寻求帮助的函数的功能描述;lookfor 列出所有函数的功能描述中含有你所输
10、入的内容的函数的简介如:help inverse显示inverse.m not found.但如输入lookfor inverse则显示INVHILB Inverse Hilbert matrix ACOSH Inverse hyperbolic cosine ERFINV Inverse of the error function INV Matrix inverse PINV Pseudoinverse IFFT Inverse discrete Fourier transform IFFT2 Twodimensional inverse discrete Fourier transfor
11、m ICCEPS Inverse complex cepstrum IDCT Inverse discrete cosine transform数据分析和统计面向列的数据集 这年头似乎十分风行”面向”这个词,这儿故也套用,其英文为Column-Oriented Data Sets,可理解为MatLab按列的存储方式来分析数据,下面是一个例子: Time Location 1 Location 2 Location 3 01h00 11 11 9 02h00 713 11 03h00 14 17 20 04h00 11 13 9 05h00 43 51 69 06h00 38 46 76 07h
12、00 61 132186 08h00 75 135180 09h00 38 88 115 10h00 28 36 55 11h00 12 12 14 12h00 18 27 30 13h00 18 19 29 14h00 17 15 18 15h00 19 36 48 16h00 32 47 10 17h00 42 65 92 18h00 57 66 151 19h00 44 55 90 20h00 114 145 257 21h00 35 58 68 22h00 11 12 15 23h00 13 915 24h00 10 9 7 以上数据被保存在一个称为count.dat的文件中11 11
13、 9 7 13 11 14 17 20 11 13 9 43 51 69 38 46 76 61 132 186 75 135 180 38 88 115 28 36 55 12 12 14 18 27 30 18 19 29 17 15 18 19 36 48 32 47 10 42 65 92 57 66 151 44 55 90 114 145 257 35 58 68 11 12 15 13 9 15 10 9 7下面,我们调入此文件,并看看文件的一些参数load count.datn,p = size(count) n = 24 p = 3 创建一个时间轴后,我们可以把图画出来:t
14、= 1:n;set(0,defaultaxeslinestyleorder,-|-|-.) set(0,defaultaxescolororder,0 0 0) plot(t,count), legend(Location 1,Location 2,Location 3,0) xlabel(Time), ylabel(Vehicle Count), grid on 足以证明,以上是对个对象的次观测基本数据分析函数(一定注意是面向列的) 继续用上面的数据,其每列最大值均值及偏差分别为:mx = max(count) mu = mean(count) sigma = std(count) mx =
15、 114 145 257 mu = 32.0000 46.5417 65.5833 sigma = 25.3703 41.4057 68.0281重载函数,还可以定位出最大最小值的位置mx,indx = min(count) mx = 7 9 7 indx = 2 23 24试试看,你能看懂下面的命令是干什么的吗?n,p = size(count) e = ones(n,1) x = count e*mu点这看看答案!下面这句命令则找出了整个矩阵的最小值:min(count(:)ans = 7 协方差及相关系数下面,我们来看看第一列的方差:cov(count(:,1) ans = 643.65
16、22cov()函数作用于矩阵,则会计算其协方差矩阵.corrcoef()用于计算相关系数,如:corrcoef(count)ans = 1.0000 0.9331 0.9599 0.9331 1.0000 0.9553 0.9599 0.9553 1.0000 数据的预处理未知数据NaN(Not a Number-不是一个数)被定义为未经定义的算式的结果,如 0/0.在处理数据中,NaN常用来表示未知数据或未能获得的数据.所有与NaN有关的运算其结果都是NaN.a = magic(3); a(2,2) = NaN a = 8 1 6 3 NaN 7 4 9 2sum(a) ans = 15 N
17、aN 15 在做统计时,常需要将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(count);n,p
18、 = size(count) outliers = abs(count mu(ones(n, 1),:) 3*sigma(ones(n, 1),:); nout = sum(outliers) nout = 1 0 0 count(any(outliers),:) = ;点这看看答案 回归与曲线拟合我们经常需要把观测到的数据表达为函数,假如有如下的对时间的观测:t = 0 .3 .8 1.1 1.6 2.3; y = 0.5 0.82 1.14 1.25 1.35 1.40; plot(t,y,o), grid on多项式回归由图可以看出应该可以用多项式来表达:y=a0+a1*t+a2*t2系
19、数a0,a1,a2可以由最小平方拟合来确定,这一步可由反除号来完成解下面的三元方程组可得: X = ones(size(t) t t.2 X = 1.0000 00 1.0000 0.3000 0.0900 1.0000 0.8000 0.6400 1.0000 1.1000 1.2100 1.0000 1.6000 2.5600 1.0000 2.3000 5.2900 a = Xy a = 0.5318 0.9191 0.2387 a即为待求的系数,画图比较可得T = (0:0.1:2.5); Y = ones(size(T) T T.2*a; plot(T,Y,t,y,o,), grid
20、 on结果令人失望,但我们可以增加阶数来提高精确度,但更明智的选择是用别的方法线性参数回归形如:y=a0+a1*exp(-t)+a2*t*exp(-t)计算方法同上:X = ones(size(t) exp( t) t.*exp( t); a = Xy a = 1.3974 0.8988 0.4097 T = (0:0.1:2.5); Y = ones(size(T) exp( T) T.exp( T)*a; plot(T,Y,t,y,o), grid on 看起来是不是好多了!例子研究:曲线拟合下面我们以美国人口普查的数据来研究一下有关曲线拟合的问题(MatLab是别人的,教学文档是别人的,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 中文 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内