Matlab二维灰度图象分析及变换处理_第1页
Matlab二维灰度图象分析及变换处理_第2页
Matlab二维灰度图象分析及变换处理_第3页
Matlab二维灰度图象分析及变换处理_第4页
Matlab二维灰度图象分析及变换处理_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PAGE 43基础强化训练设计报告 题 目: 二维灰度图象的统计分析及变换处理 专业班级: 学生姓名: 指导教师: 2010 年 7 月 17 日基础强化训练设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 二维灰度图象的统计分析及(FFT)变换处理课程设计目的:较全面了解常用的数据分析与处理原理及方法;能够运用相关软件进行模拟分析;掌握基本的文献检索和文献阅读的方法;提高正确地撰写论文的基本能力。课程设计内容和要求采集一幅像素大于64*64黑白图像;常规的数学统计数据处理:计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图;采用FFT(傅立叶变换)对图像进行分析

2、初始条件:MATLAB软件。数字信号处理与图像处理基础知识。时间安排:第18周周一:安排任务1920周:仿真设计(鉴主13楼计算机实验室)第20周周六:完成(答辩,提交报告,演示) 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日 目 录TOC o 1-3 h u HYPERLINK l _Toc32710 摘要 PAGEREF _Toc32710 1 HYPERLINK l _Toc10547 Abstract PAGEREF _Toc10547 2 HYPERLINK l _Toc28770 1 数据采集 PAGEREF _Toc28770 3 HYPERLINK l _T

3、oc8353 1.1图像的选取 PAGEREF _Toc8353 3 HYPERLINK l _Toc19950 1.2 MATLAB读取方法 PAGEREF _Toc19950 4 HYPERLINK l _Toc23966 1.2.1 编辑M文件 PAGEREF _Toc23966 4 HYPERLINK l _Toc1545 1.2.2 图像的读取 PAGEREF _Toc1545 4 HYPERLINK l _Toc13982 1.2.3查看图像的格式 PAGEREF _Toc13982 6 HYPERLINK l _Toc32276 1.2.4 灰度值的获取 PAGEREF _Toc

4、32276 7 HYPERLINK l _Toc20996 2 数据统计处理 PAGEREF _Toc20996 8 HYPERLINK l _Toc30062 2.1 均值计算 PAGEREF _Toc30062 8 HYPERLINK l _Toc4846 2.1.1 原理及计算公式 PAGEREF _Toc4846 8 HYPERLINK l _Toc13022 2.1.2 计算程序及结果 PAGEREF _Toc13022 9 HYPERLINK l _Toc31409 2.2 各像素点灰度值的标准差 PAGEREF _Toc31409 9 HYPERLINK l _Toc14723

5、2.3 各像素点灰度值的方差 PAGEREF _Toc14723 10 HYPERLINK l _Toc21146 2.4 灰度直方图 PAGEREF _Toc21146 11 HYPERLINK l _Toc32092 3.傅立叶变化 PAGEREF _Toc32092 13 HYPERLINK l _Toc30453 3.1 原理及计算公式 PAGEREF _Toc30453 13 HYPERLINK l _Toc18625 3.2 变换及逆变换程序及结果 PAGEREF _Toc18625 14 HYPERLINK l _Toc21251 3.3对变换后的图像的说明 PAGEREF _T

6、oc21251 16 HYPERLINK l _Toc17142 4.总结(心得体会) PAGEREF _Toc17142 17 HYPERLINK l _Toc24035 5.参考文献 PAGEREF _Toc24035 18 摘要 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业HYPERLINK /view/1658637.htm数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学

7、计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。本次练习介绍的就是Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。AbstractMATLAB is Matrix lab (Matrix of L

8、aboratory), is the MathWorks company business mathematics software is used to develop, data visualization algorithm, data analysis and numerical calculation of senior technical calculation language and interactive environment, including MATLAB and Simulink two most.MATLAB is a scientific computing l

9、anguage that adds the function of numerical computing and graphics processing, symbols together. As a powerful scientific computing platforms, it can almost satisfy all the calculations that needs. MATLAB itself is a powerful tool of data visualization that can display data through various forms, su

10、ch as graylevel histogram, contours, montage mixing, pixel analysis, the layer texture and transformation. With visual graphics, it can not only evaluate image characteristics, but also analyze the distribution of color image.The purpose of the practice of introducing Matlab environment is the most

11、basic of some image processing operations, such as read, write, image information and image format, size and gray telescopic; etc. Through the experiment mastery of image histograms depicts method, deepen the histogram image feature and the relationship between the shape of understanding,and to deep

12、en the understanding of histogram equalization algorithm.1 数据采集 Matlab软件的图像采集工具箱提供了大量的函数用于采集图像和视频信号,该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。所支持的硬件包括:Matrox和Data Translation公司提供的视频采集设备,同时还支持Windows平台下支持USB或者火线(IEEE-1394)的视频摄像头等设备。MATLAB可以支持很多很多图片的文件格式,例如cur、bmp、hdf、ico、jpg、tif、gif、pcx等。用于读写图像数据的函数有imread(从图像

13、格式的文件中读取数据)和imwrite(将数据写入图像格式的文件)。这里我用到的是imread,主要是用到图像文件的读取。1.1图像的选取 图1.1本次研究的图像如图所示,科比的图像 1.2 MATLAB读取方法1.2.1 编辑M文件 打开Matlab软件,在File下选择NewM-File。1.2.2 图像的读取imread函数用于读入各种图象文件,其一般的用法为: X,MAP=imread(filename,fmt);亦可直接写为imread();其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。例如本次设计中:

14、i = imread(科比.jpg);利用函数imread函数实现图像文件的读取,然后运用imshow函数显示图像。如果采集图像为彩色图像,可以先将彩色图像转换为灰度图像,再进行计算分析。操作如下图-1,将存在D:matlabwork里的图片“科比.jpg”写入MATLAB中。需要先打开运行MATLAB,然后在File里面新建M-File文件,再将读写图片数据的程序输进去即可。 图1.2.1科比的彩色图像转化成灰度图像检查程序无误之后,就可以直接在command window窗口运行。如果运行之后在MATLAB主页面里显示有错误的话就需要重新回到M-File的页面里面对程序进行修改然后才可以运

15、行;如果运行之后在MATLAB主页面里面没有错误显示就可以看到图1.2.2。 图1.2.21.2.3查看图像的格式 Matlab中可以使用imfinfo函数查看文件信息,图像的查询及读写在Matlab中要查询一个图像文件的信息,只要用imfinfo指令加上文件及其完整路径名即可。函数调用格式为:Info=imfinfo(filename,fmt)Info=imfinfo(filename)参数fmt对应为所有图像处理工具箱中所有支持的图像文件格式。info = Filename: 科比.jpg FileModDate: 04-Jul-2010 12:41:22 FileSize: 32901

16、Format: jpg FormatVersion: Width: 299 Height: 450 BitDepth: 24 ColorType: truecolor FormatSignature: NumberOfSamples: 3 CodingMethod: Huffman CodingProcess: Sequential Comment: 上面的即是图像的格式处理1.2.4 灰度值的获取从上面的文件信息可以看出来,这个jpg文件的色彩类型为truecolor真彩类型,因此要获得这个图像的灰度值,首先需要将这幅真彩图转换成灰度图。可以使用rgb2gray函数,最后的结果保存在一个八位

17、矩阵中,由于这个矩阵为400*300大小,限于篇幅只截取部分。每个单元的数值就是原来的图像对应的灰度值。如图 图1.2.42 数据统计处理2.1 均值计算2.1.1 原理及计算公式均值计算的原理较简单,在MATLAB的函数库中表示均值的函数是mean2,其格式是mean2(),括号里面就是待处理分析的信号。 图2.1.1上面的程序同样是在新建的M-File文件里面编写运行的,检查程序没有错误之后,就在command window窗口直接运行。 2.1.2 计算程序及结果图 2.1.22.2 各像素点灰度值的标准差在MATLAB的函数库中表示标准差的函数为std2,其格式是std2(),括号里面

18、就是待处理分析的信号。由于标准差反映的是偏离灰度均值的程度,如果标准差越大,则说明灰度级越大,则图像包含的信息就越多。如下图,程序如下: 图2.2.1结果显示如下: 图2.2.22.3 各像素点灰度值的方差这里对图像的方差进行计算如图2.3.1所示,在求标准差的基础上,方差是标准差的平方。 图2.3.1结果如下,得到的即是灰度值的方差: 图2.3.22.4 灰度直方图直方图是一个显示灰度或索引图像亮度分布情况的图表,它是图像分析中用来说明图像灰度分布的图形。直方图的每一个分支表示对应灰度级出现的频数(处于该灰度级的像素的数目)间的统计关系,用横坐标表示灰度级,纵坐标表示频数(或相对频数=频数/

19、总像素数目)。这里对图像的直方图的绘制用的函数是imhist,下面为具体绘制图像直方图的程序,如图2.4.1 图2.4.1灰度直方图的显示如下图: 图2.4.23.傅立叶变化3.1 原理及计算公式 傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和HYPERLINK /view/351612.htm离散傅里叶变换。最初HYPERLINK /view/384993.htm傅里叶分析是作为热过程的解析分析的工具被提出的(参见:林家翘、西格尔著自然科学中确定性问题的应用数学,科学出版

20、社,北京。原版书名为 C. C. Lin & L. A. Segel, Mathematics Applied to Deterministic Problems in the Natural Sciences, Macmillan Inc., New York, 1974)。 * 傅里叶变换属于谐波分析。 * 傅里叶变换的逆变换容易求出,而且形式与正变换非常类似; * 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取; * HYPER

21、LINK /view/1353713.htm卷积定理指出:傅里叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段; * 离散形式的傅里叶变换可以利用数字计算机快速的算出(其算法称为HYPERLINK /view/7795.htm快速傅里叶变换算法(FFT).这里是对图像快速傅里叶变化,用到的是fft2函数。说明:以下程序的原始图片科比.jpg放在matlab安装目录下work文件夹里。 打开matlab后将本程序段直接复制到matlab 的“command window”里面的后即可进行图片的傅立叶变换。对图像快速傅里叶变化后,可以对图像进行反傅里叶变换,应用函数if

22、ft2(),如果得到的图像与傅里叶变换前的图像相同,则傅里叶变换正确。 图3.1.13.2 变换及逆变换程序及结果检查无误后,运行以上的程序,观察程序运行结果。程序运行的结果如下图示: 图3.23.3对变换后的图像的说明 图3.2中上图是傅里叶变换得到的结果 下图则是傅里叶逆变换得到的结果,即是科比的灰度图像设x(n)为N项的复数序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即

23、N点DFT变换大约就需要N2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2)2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N 2(N/2)2=N N2/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N

24、次的运算,N在1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。 4.总结(心得体会) 这次的课程设计主要是让我们学习使用MATLAB,利用对图像的处理来学习MATLAB这个软件。首先我认识了MATLAB这个软件,其功能非常的强大,由总包和若干个工具箱组成,可以实现数值分析、自动控制、图像处理、神经元网络等若干个领域的计算和图形显示,它将这些不同领域的计算用函数的形式分类成对用户完全透明的库函数,构成一个个针对专门领域的工具箱。使得我们在使用的时候用户直接调用这些库函数并赋予实际参数就能解决实际问题,具有极高的变成效率。 我觉得通

25、过这次课设之后,我发现MATLAB强大的功能。不仅仅局限于我们分析信号与系统的时候用到的那些功能,还有其他更多更广泛的用途。通过了本次课程设计,我学会了使用M文件来编写能解答特殊题目的程序,一道很基础简单的电路题目,让我对一款很陌生的软件有了一个初步的认识,这对我以后的学习和研究会产生很好的影响。本来通过并不复杂的计算就能得到结果,但是在建立了矩阵后,可以使用MATLAB来解决这种并不能在一般的计算器上计算出来的问题,而且编程过程中,可以清楚地从workspace中看到自己所输入的参数是否正确,也能直观地看到一些中间变量是否有误,而最后的运算结果更是一目了然。这一切都让我对这款软件产生了极高的

26、好感。5.参考文献 1. 电路(第五版)邱关源高等教育出版社 2.电路学习指导与习题分析 罗先觉高等教育出版社 3.MATLAB R2007基础与提高 常巍电子工业出版社 4.MATLAB实用教程 郑阿奇电子工业出版社 5. MATLAB数值分析 周品 , 何正风 机械工业出版 6.MATLAB教程罗建军 电子工业出版社 本科生基础强化训练成绩评定表姓 名性 别专业、班级题 目:答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日附录资料:MATLAB函数和命令的用法Binocdf二项式累积分布函数语法格式Y = binocdf(X,N,P)

27、函数功能Y = binocdf(X,N,P) 计算X中每个X(i)的二项式累积分布函数,其中,N中对应的N(i)为试验数,P中对应的P(i)为每次试验成功的概率。Y, N, 和 P 的大小类型相同,可以是向量、矩阵或多维数组。输入的标量将扩展成一个数组,使其大小类型与其它输入相一致。The values in N must all be positive integers, the values in X must lie on the interval 0,N, and the values in P must lie on the interval 0, 1.The binomial cd

28、f for a given value x and a given pair of parameters n and p is The result, y, is the probability of observing up to x successes in n independent trials, where the probability of success in any given trial is p. The indicator function I(0,1,.,n)(i)ensures that x only adopts values of 0,1,.,n.示例若一个棒球

29、队在一个赛季要比赛162场,每场比赛取胜的机会是50-50,则该队取胜超过100 场的概率为: 1-binocdf(100,162,0.5)ans = 0.0010433相关函数 HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binofit.html binofit | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binoinv.html binoin

30、v | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binopdf.html binopdf | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binornd.html binornd | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%2

31、1/binostat.html binostat | HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/cdf.html cdf附:二项式分布(binomial distribution )定义二项分布的概率密度函数为where k is the number of successes in n trials of a Bernoulli process with probability of success p.The binomial distribution is dis

32、crete, defined for integers k = 0, 1, 2, . n, where it is nonzero.背景The binomial distribution models the total number of successes in repeated trials from an infinite population under the following conditions:Only two outcomes are possible on each of ntrials.The probability of success for each trial

33、 is constant.All trials are independent of each other.The binomial distribution is a generalization of the HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/brn2ivz-2.html Bernoulli distribution; it generalizes to the HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2

34、010a/help/toolbox/stats/help.jar%21/brn2ivz-84.html multinomial distribution.参数Suppose you are collecting data from a widget manufacturing process, and you record the number of widgets within specification in each batch of100. You might be interested in the probability that an individual widget is w

35、ithin specification. Parameter estimation is the process of determining the parameter, p, of the binomial distribution that fits this data best in some sense.One popular criterion of goodness is to maximize the likelihood function. The likelihood has the same form as the binomial pdf above. But for

36、the pdf, the parameters (nandp) are known constants and the variable isx. The likelihood function reverses the roles of the variables. Here, the sample values (the xs) are already observed. So they are the fixed constants. The variables are the unknown parameters. MLE involves calculating the value

37、of p that give the highest likelihood given the particular set of data.The function HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/stats/help.jar%21/binofit.html binofit returns the MLEs and confidence intervals for the parameters of the binomial distribution. Here is an example u

38、sing random numbers from the binomial distribution with n=100 and p=0.9. r = binornd(100,0.9)r = 85 phat, pci = binofit(r,100)phat = 0.85pci = 0.76469 0.91355The MLE for parameterp is0.8800, compared to the true value of0.9. The 95% confidence interval forp goes from 0.7998 to0.9364, which includes

39、the true value. In this made-up example you know the true value ofp. In experimentation you do not.示例The following commands generate a plot of the binomial pdf for n = 10 and p = 1/2.x = 0:10;y = binopdf(x,10,0.5);plot(x,y,+) 相关内容 HYPERLINK jar:file:/C:/Program%20Files/MATLAB/R2010a/help/toolbox/sta

40、ts/help.jar%21/bqt29ct.html l bqt290a-1 Discrete Distributions附:二项式分布(网上)定义若某事件概率为p,现重复试验n次,该事件发生k次的概率为:P=C(k,n)pk(1-p)(n-k)C(k,n)表示组合数,即从n个事物中拿出k个的方法数。二项分布的概念考虑只有两种可能结果的随机试验,当成功的概率()是恒定的,且各次试验相互独立,这种试验在统计学上称为贝努里试验(Bernoullitrial)。如果进行n次贝努里试验,取得成功次数为X(X=0,1,n)的概率可用下面的二项分布概率公式来描述:P=C(X,n) X(1-)(n-X)式

41、中的n为独立的贝努里试验次数,为成功的概率,(1-)为失败的 HYPERLINK /doc/5399415.html t _blank 概率,X为在n次贝努里试验中出现成功的次数,C(X,n)表示在n次试验中出现X的各种组合情况,在此称为二项系数(binomialcoefficient)。内容简介二项分布,伯努里分布:进行一系列试验,如果1. 在每次试验中只有两种可能的结果,而且是互相对立的;2. 每次实验是独立的,与其它各次试验结果无关;3. 结果事件发生的 HYPERLINK /doc/5399415.html t _blank 概率在整个系列试验中保持不变,则这一系列试验称为伯努力试验。

42、在这试验中,事件发生的次数为一 HYPERLINK /doc/2273201.html t _blank 随机事件,它服从二次分布。二项分布可以用于可靠性试验。可靠性试验常常是投入n个相同的式样进行试验T小时,而只允许k个式样失败,应用二项分布可以得到通过试验的概率。一个事件必然出现,就说它100%要出现。100%=1,所以100%出现的含义就是出现的概率P=1。即必然事件的出现概率为1。若掷一枚硬币,正面向上的结果的概率为0.5。反面向上的结果的概率也是0.5。则出现正面向上事件或者反面向上事件的概率就是0.5+0.5=1,即二者必居其一。若掷两次硬币,由独立事件的概率乘法定理那么两次都是正

43、面(反面)向上的概率是0.50.5=0.25。另外第一个是正第二个是反的出现概率也是0.50.5=0.25。同理第一个反第二个正的出现概率也是0.50.5=0.25。于是一正一反的概率是前面两个情况的和,即0.25+0.25=20.25=0.5。它们的合计值仍然是1。binopdf二项分布的概率密度函数语法格式Y = binopdf(X,N,P)函数功能Y = binopdf(X,N,P) 计算X中每个X(i)的概率密度函数,其中,N中对应的N(i)为试验数,P中对应的P(i)为每次试验成功的概率。Y, N, 和 P 的大小类型相同,可以是向量、矩阵或多维数组。输入的标量将扩展成一个数组,使其

44、大小类型与其它输入相一致。N中的值必须是正整数,0 P 1 。对于给出的x和两个参数n和p,二项分布概率密度函数为其中 q = 1 p。 y为n次独立试验中成功x次的概率,其中,每次试验成功的概率为p。指示器函数 I(0,1,.,n)(x) 确保x 取值为 0, 1, ., n。 示例一个质量检查技术员一天能测试200块电路板。假设有 2% 的电路板有缺陷,该技术员在一天的测试中没有发现有缺陷的电路板的概率是多少?binopdf(0,200,0.02)ans =0.0176质量检查技术员一天中最大可能检测出有缺陷的电路板是多少块?defects=0:200;y = binopdf(defect

45、s,200,.02);x,i=max(y);defects(i) ans =4相关函数 HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binocdf.html binocdf | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binofit.html binofit | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolb

46、ox/stats/help.jar%21/binoinv.html binoinv | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binornd.html binornd | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/toolbox/stats/help.jar%21/binostat.html binostat | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/too

47、lbox/stats/help.jar%21/pdf.html pdfdlmread将以ASCII码分隔的数值数据文件读入到矩阵中语法格式M = dlmread(filename)M = dlmread(filename, delimiter)M = dlmread(filename, delimiter, R, C)M = dlmread(filename, delimiter, range)函数功能M = dlmread(filename)读取有分隔符的ASCII数值数据文件filename,并把数据给到矩阵M中。文件名(filename)以字符串形式用单引号括起来。 dlmread 从文

48、件的格式中推断分隔符。M = dlmread(filename, delimiter)指定分隔符delimiter。使用 t 代表制表符 tab 作为分隔。M = dlmread(filename, delimiter, R, C)R和C指定了数据读取数据,其左上角的值位于文件中的第R行,第C列。R和C从0开始,所以R=0, C=0 指向文件中的第一个值。M = dlmread(filename, delimiter, range)读取由range = R1 C1 R2 C2指定的区域块, (R1,C1)是左上角,(R2,C2)是右下角。也可以使用电子表格表示法来指定,如range = A1.

49、B7。备注All data in the input file must be numeric. dlmread does not read files that contain nonnumeric data, even if the specified rows and columns contain only numeric data.若没有指定分隔符,当从文件格式中推断分隔符时,连续的空格符当作一个分隔符对待。若指定了分隔符,则重复的分隔符将分别作为单独的分隔符对待。If you want to specify an R, C, or range input, but not a de

50、limiter, set the delimiter argument to the empty string, (two consecutive single quotes with no spaces in between, ). For example,M = dlmread(myfile.dat, , 5, 2)In this case, dlmread treats repeated white spaces as a single delimiter.Dlmread将用0填充没有边界的区域。有多行的数据文件,若以非空格分隔符结束,例如分号,则导入后会多产生全0的一列在最后。Dlmr

51、ead在导入任何复数时,将其作为一个整体导入到一个复数单元中。下面是有效的复数格式:i|jExample: 5.7-3.1ii|jExample: -7j嵌入了空格的复数是不正确的格式,空格将被认为是分隔符。示例例1Export a 5-by-8 test matrix M to a file, and read it with dlmread, first with no arguments other than the filename:M = gallery(integerdata, 100, 5 8, 0); dlmwrite(myfile.txt, M, delimiter, t)d

52、lmread(myfile.txt)ans = 96 77 62 41 6 21 2 42 24 46 80 94 36 20 75 85 61 2 93 92 82 61 45 53 49 83 74 42 1 28 94 21 90 45 18 90 14 20 47 68Now read a portion of the matrix by specifying the row and column of the upper left corner:dlmread(myfile.txt, t, 2, 3)ans = 92 82 61 45 53 42 1 28 94 21 90 14 2

53、0 47 68This time, read a different part of the matrix using a range specifier:dlmread(myfile.txt, t, C1.G4)ans = 62 41 6 21 2 80 94 36 20 75 93 92 82 61 45 74 42 1 28 94例2Export matrix M to a file, and then append an additional matrix to the file that is offset one row below the first:M = magic(3);d

54、lmwrite(myfile.txt, M*5 M/5, )dlmwrite(myfile.txt, M/3, -append, . roffset, 1, delimiter, )type myfile.txt40 5 30 1.6 0.2 1.215 25 35 0.6 1 1.420 45 10 0.8 1.8 0.4 2.6667 0.33333 21 1.6667 2.33331.3333 3 0.66667When dlmread imports these two matrices from the file, it pads the smaller matrix with ze

55、ros:dlmread(myfile.txt) 40.0000 5.0000 30.0000 1.6000 0.2000 1.2000 15.0000 25.0000 35.0000 0.6000 1.0000 1.4000 20.0000 45.0000 10.0000 0.8000 1.8000 0.4000 2.6667 0.3333 2.0000 0 0 0 1.0000 1.6667 2.3333 0 0 0 1.3333 3.0000 0.6667 0 0 0替代作为dlmread的替代,可使用导入向导。选择菜单 “File | Import Data” 激活导入向导。相关函数 H

56、YPERLINK jar:file:/D:/Program%20Files/MATLAB/help/techdoc/help.jar%21/ref/dlmwrite.html dlmwrite | HYPERLINK jar:file:/D:/Program%20Files/MATLAB/help/techdoc/help.jar%21/ref/textscan.html textscanfprintf写数据到文本文件或输出到命令窗口语法格式fprintf(fileID, format, A, .)fprintf(format, A, .)count = fprintf(.)函数功能fprin

57、tf(fileID, format, A, .) fileID为文件句柄,指定要写入的文件;format是用来控制所写数据格式的格式符;A是用来存放数据的矩阵。applies the format to all elements of array A and any additional array arguments in column order, and writes the data to a text file. fprintf uses the encoding scheme specified in the call to HYPERLINK jar:file:/D:/Progr

58、am%20Files/MATLAB/help/techdoc/help.jar%21/ref/fopen.html fopen.fprintf(format, A, .) 将A中的数据按格式format输出到命令窗口。count = fprintf(.) 返回fprintf写的字节数。输入参数fileID取值为下面中的一种:从文件打开时所得到的文件句柄,为一个整数值。1 为标准输出设备(屏幕)。2 for standard error.fileID缺省时,输出到屏幕,即1为默认值。format单引号括起来的是 “转换控制字符串 ”,指定输出的格式。由下面给出的各部分的组合而成:百分号后紧跟的格

59、式字符,如%s 。输出区域的宽度,精度,和其它选项(附加格式说明符)。要原样输出的文本(普通字符)。转义字符,包括:单引号% 百分号反斜线a响铃b退格符fForm feedn换行r回车t水平制表符v垂直制表符xN十六进制数, NN八进制数, N转换字符和可选的操作符按以下顺序排列(包括空格):下表列出可用的转换字符和限定类型字符。数据类型转换说 明Integer, signed%d 或 %i十进制整数%ld 或 %li64-bit base 10 values%hd 或 %hi16-bit base 10 valuesInteger, unsigned%u十进制整数%o八进制整数(octal)

60、%x十六进制整数 (hexadecimal), 使用字母 af%X十六进制整数 (hexadecimal), 使用字母AF%lu%lo%lx or %lX64-bit values, 十、八、十六进制整数%hu%ho%hx or %hX16-bit values, 十、八、十六进制整数Floating-point number%f定点表示法%e指数表示法,如 3.141593e+00%E同 %e,但用E,如 3.141593E+00%g%e 或 %f的紧凑格式,没有尾部的0%G%E 或 %f的紧凑格式,没有尾部的0%bx or %bX%bo%bu双精度的十六、八、十进制数值如:%bx prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论