当前位置:文档之家› 基于Matlab的图像的数据分析

基于Matlab的图像的数据分析

基于Matlab的图像的数据分析
基于Matlab的图像的数据分析

武汉理工大学《MA TLAB课程设计》说明书

课程设计任务书

学生姓名:专业班级:

指导教师:工作单位:信息工程学院

题目: 基于MATLAB的图像的数据分析

初始条件:

(1)MATLAB应用软件的基本知识及操作;

(2)高等数学、线性代数等基础数学运算;

(3)图像处理基础知识。

要求完成的主要任务:

读取图像并求出图像的最大值、最小值、均值、中值、和、标准差、两图像的协方差、相关系数等。

提高要求:绘制图像灰度直方图、对图像进行傅里叶变换和反变换。时间安排:

序号阶段内容所需时间

1 方案设计1天

2 软件设计2天

3 系统调试1天

4 答辩1天

合计5天

指导教师签名:年月日

系主任(或责任教师)签名:年月日

武汉理工大学《MA TLAB课程设计》说明书

目录

摘要................................................................ I Abstract........................................................... II 正文. (1)

1.设计项目要求与说明 (1)

2.软件流程分析 (2)

3.调试和实验数据分析 (3)

3.1数据采集 (3)

3.1.1图像读取 (3)

3.1.2图像鉴别与转换 (5)

3.2数据统计处理 (6)

3.2.1最大值计算 (6)

3.2.2最小值计算 (7)

3.2.3均值计算 (8)

3.2.4中值计算 (9)

3.2.5和计算 (10)

3.2.6标准差计算 (11)

3.2.7协方差计算 (12)

3.2.8相关系数计算 (14)

3.2.9灰度直方图绘制 (15)

3.3快速傅里叶变换 (16)

小结与体会 (17)

参考文献 (18)

附录 (19)

源程序 (19)

摘要

课程设计的主要目的就是安排学生进行基础理论、基本技能的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。根据本专业需求和特点,需要在数学基础知识、基本技能方面进行强化训练,使学生对常用的数据分析与处理原理及方法有较为全面的了解,能够运用相关软件进行模拟分析。并帮助学生掌握基本的文献检索和文献阅读的方法,同时提高学生正确地撰写论文的基本能力,本次课程设计主要是运用MATLAB软件来处理图像,而且主要是学会使用该软件中与图像信息显示、分析和处理的有关函数的调用,本次课程设计运用的主要函数为imread、imshow、double、max、min、mean2、median、sum、std2、isgray、rgb2gray、imhist、fft2、ifft2等,通过调用这些函数来实现图像显示、数据分析和图像处理即傅里叶变换。

关键字:MATLAB软件数据分析图像处理

Abstract

The basis of curriculum design is the main purpose of allowing students to carry out basic theory, basic skills training to enhance students knowledge of basic theory, basic practical ability to improve the basic quality of personnel training. According to the professional needs and characteristics, the need for basic knowledge in mathematics, basic skills training to enable students to commonly used data analysis and theory and methods to deal with a more comprehensive understanding of, related to the use of simulation software. And to help students master basic reading literature search and documentation of methods, while improving the students correctly the basic ability to write papers, this is the basis of curriculum design to deal with the use of MATLAB software, images, and mainly learn how to use the software with the image information display, analysis and processing of the function to be called the basis for the use of curriculum design for the main function, including imread, imshow, double, max, min, mean2, median, sum, std2, isgray, rgb2gray, imhist, fft2, ifft2 and so on, through the call these functions to achieve image display, data analysis and image processing that the Fourier transform.

Key words:MATLAB software Data analysis Image processing

正文

1.设计项目要求与说明

在F:\images目录下放有两幅灰度图片“达芬奇-蒙娜丽莎.jpg”“杜尚-蒙娜丽莎.jpg”和一幅非灰度图片“达芬奇-蒙娜丽莎.png”,打开MATLAB软件,调用与图像相关的函数读取这三幅图像,求出第一幅图像的最大值、最小值、均值、中值、和、标准差,并求出前两幅图像图像的协方差、相关系数。

以上是对图像的数据分析,还可以调用MATLAB中的函数对图像(第三幅)进行处理,例如灰度处理、灰度直方图绘制、快速傅里叶变换等。

图1 原始图像及存放位置

2.软件流程分析

启动MATLAB 软件,调用imread()函数读入三幅图像文件的数据,分别存放在A 、B 、C 三个矩阵中,调用imshow()函数可以显示图像,对矩阵A 调用max()、min()、mean2()、median()、sum ()、std2()函数求出第一幅图像的最大值、最小值、均值、中值、和、标准差,利用定义对矩阵A 、B 进行相关运算求出前两幅图像的协方差、相关系数。

对矩阵C 调用isgray()函数判断其是否为灰度图像,若返回值为0则调用rgb2gray()函数将其转换为灰度图像,调用imhist()函数绘制灰度直方图,调用fft2()、ifft2()函数对图像进行傅里叶变换和傅里叶逆变换。

流程图如下:

转换成 灰度图像

结束

判断第三幅图像

是否为灰度图像?

绘制灰度直方图、进行快速傅里叶变换与逆变换,显示逆变换后的图像

求矩阵A 、B 的协方差与相关系数

求矩阵A 的最大值、最小值、均值、中值、和、标准差

启动MATLAB

读入图像数据,存放在矩阵A 、B 、C 中

矩阵A 、B 、C 中数据转换成double 类型

显示图像

图2 程序流程图

3.调试和实验数据分析

3.1数据采集

3.1.1图像读取

MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,此外还可以用imfinfo()函数查看图像文件的信息。调用imshow()函数显示图像,double()函数是数据类型转换函数,将非double型数据转换成double型,

图像数据及图像信息的读取源程序如下:(以第一幅图像为例)

源程序1:

A=imread('F:\images\达芬奇-蒙娜丽莎.jpg'); %图像数据的读取,

%将图像数据放入矩阵A中A=double(A); %A中数据转换成double型

info_A=imfinfo('F:\images\达芬奇-蒙娜丽莎.jpg') %读取图像信息

imshow(A) %显示图像

运行源程序结果如下:

info_A =

Filename: 'F:\images\达芬奇-蒙娜丽莎.jpg'

FileModDate: '31-十二月-2012 16:44:15'

FileSize: 12850

Format: 'jpg'

FormatVersion: ''

Width: 255

Height: 333

BitDepth: 8

ColorType: 'grayscale'

FormatSignature: ''

NumberOfSamples: 1 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: {} Orientation: 1 XResolution: 200 YResolution: 200 ResolutionUnit: 'Inch'

Software: 'ACD Systems Digital Imaging ' DateTime: '2009:05:25 15:40:42 ' YCbCrPositioning: 'Centered' DigitalCamera: [1x1 struct]

图像显示结果如图3:

图3

图像显示结果

由运行结果可以获得图像的文件名、修改时间、大小、文件类型、像素(255*333)、颜色类型(灰度)等信息。

3.1.2图像鉴别与转换

为了方便计算和图像处理,常把图像转换才灰度图像,首先要确定所选图像是否为灰度图,如果是则可正常处理,如果不是则要将图片转换为二维灰度图。

MATLAB中实现判别图像是否为灰度图的函数为isgray(),若为灰度图则返回1,否则返回值为0。另外,MATLAB还有多种图形转换函数来实现不同图形的转换。

灰度图鉴别源程序如下:(以第三幅图像为例)

源程序2:

C=imread('F:\images\达芬奇-蒙娜丽莎.png'); %图像数据的读取

Res=isgray(C) %灰度图进行判别

运行源程序结果:Res = 0

此结果说明所选图像不是二维灰度图,所以要进行下一步的图形转换,MATLAB实现把RGB图像转换为灰度图像的函数为rgb2gray(),可以用此函数把原图像转换为所需类型图像。

图像转换源程序如下:

源程序3:

C_gray=rgb2gray(C); %图像转换

Res=isgray(C_gray) %判断转换后图像是否为灰度图

运行源程序结果:Res=1。运行结果说明原图像已经转换成了二维灰度图。

3.2数据统计处理

要求用MATLAB有关函数计算图像各象素点的最大值、最小值、均值、中值、和、标准差(以第一幅图像为例),以及计算两幅图像的协方差、相关系数(以前两幅图像为例)。MATLAB中提供最大值计算函数max(),最小值计算函数min(),均值计算函数mean()和mean2(),中值计算函数median(),和计算函数sum(),标准差计算函数std()和std2(),通过调用这些函数可以得到所需数据,协方差和相关系数通过定义求得。

3.2.1最大值计算

MATLAB中提供最大值计算函数max(),若A为n列矩阵,max(A)会对矩阵A的每一列取最大值得到一个1×n列矩阵,可先将n列矩阵A合并成一列,合并方法为A(:),再调用max()函数得到结果,或者调用两次max()函数。max()函数的使用方法如下:

max(max(A))或max(A(:)) %求出矩阵A所有元素的最大值

图像数据最大值计算源程序如下:

源程序4:

A_max=max(A(:)) %计算图像各像素点的最大值

源程序运行结果如图4:

图4 图像各像素点的最大值计算结果

3.2.2最小值计算

MATLAB 中提供最小值计算函数min(),使用方法同max()函数。

min(min(A))或min(A(:))

%求出矩阵A 所有元素的最小值

图像数据最小值计算源程序如下: 源程序5:

A_min=min(min(A))

%计算图像各像素点的最小值

或 A_min=min(A(:))

源程序运行结果如图5:

从运行结果可以看出,min(min(A))和min(A(:))是等价的。

图5 图像各像素点的最小值计算结果

图5 图像各像素点的最小值计算结果

3.2.3均值计算

MATLAB中提供均值计算函数mean()和mean2(),mean()函数的使用方法同max()函数,mean2()函数直接返回二维矩阵中所有值的均值,使用方法如下: mean(mean(A))或mean(A(:)) %求出矩阵A中所有元素的均值

mean2(A) %求出矩阵A中所有元素的均值

图像数据均值计算源程序如下:

源程序6:

A_average=mean2(A) %计算图像各像素点的均值

或 mean(A(:))

源程序运行结果如图6:

从运行结果可以看出,mean(mean(A))和mean(A(:))是等价的。

图6 图像各像素点的均值计算结果

3.2.4中值计算

MATLAB 中提供中值计算函数median(),median()函数的使用方法同max()函数:

median(A(:))

%求出矩阵A 中所有元素的中值

图像数据中值计算源程序如下: 源程序7:

A_middle=median(A(:))

%计算图像各像素点的中值

比较 A_midlle=median(median(A))

源程序运行结果如图7:

从运行结果可以看出median(median(A))和median(A(:))的计算结果是不同的,前者是先计算出每一列的中值,再把这些中值作为一个新的矩阵计算其中值,而后者是先将矩阵A

合并成一列再计算其中值,显然后者的计算结果是正确的。

图7 图像各像素点的中值计算结果

3.2.5和计算

MATLAB 中提供和计算函数sum(),sum()函数的使用方法同max()函数。 sum(sum(A))或sum(A(:)) %求出矩阵A 中所有元素的和

图像数据和计算源程序如下: 源程序8:

A_sum=sum(A(:))

%计算图像各像素点的中值

或 A_sum=sum(sum(A))

源程序运行结果如图8:

从运行结果可以看出,sum(sum(A))和sum(A(:))是等价的。

图8 图像各像素点的和计算结果

3.2.6标准差计算

MATLAB中提供标准差计算函数std()和std2(),两个函数的使用方法如下:s=std(A) %求出一维矩阵A的标准差

s=std2(A) %求出二维矩阵A的标准差

要求计算图像各像素点的标准差,因而可通过std2()函数进行计算,在命令行中输入std2(A)即可求得图像各像素点的标准差。

图像数据标准差计算源程序如下:

源程序9:

A_std=std2(A) %计算图像各像素点的标准差

源程序运行结果如图9:

图9 图像各像素点的标准差计算结果

3.2.7协方差计算

在概率论和统计学中,协方差用于衡量两个变量的总体误差。期望值分别为E(X)与E(Y)的两个实数随机变量X与Y之间的协方差定义为:

COV(X,Y)=E[(X-E(X))(Y-E(Y))] (公式1)其中,E是期望值。

两幅图像数据协方差计算源程序如下:(以前两幅图像为例)

源程序10:

A=imread('F:\images\达芬奇-蒙娜丽莎.jpg'); %图像1数据的读取

B=imread('F:\images\杜尚-蒙娜丽莎.jpg'); %图像2数据的读取

A=double(A);B=double(B); %数据转换成double型

A=A(:);B=B(:); %合并成一列矩阵

A=A';B=B'; %列矩阵转换成行矩阵

length_A=length(A);length_B=length(B); %求矩阵长度

%将A、B矩阵变为等长矩阵if(length_A>length_B) %若A矩阵比B矩阵长,B=[B,zeros(1,length_A-length_B)]; %在B矩阵后面加0补齐else %若A矩阵比B矩阵短A=[A,zeros(1,length_B-length_A)]; %在A矩阵后面加0补齐end

A_average=mean(A);B_average=mean(B); %求矩阵均值

AB=(A-A_average).*(B-B_average); %构造矩阵AB=[A-E(A)][B-E(B)]

cov=mean(AB); %求矩阵AB均值即A、B的协方差

源程序运行结果如图10:

图10 两幅图像各像素点的协方差计算结果

通过运行结果可知,这两幅图像之间的协方差是正值,说明这两幅图像的变化趋势是一致的,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值。

3.2.8相关系数计算

协方差作为描述X 和Y 相关程度的量,在同一物理量纲之下有一定的作用,但同样的两个量采用不同的量纲使它们的协方差在数值上表现出很大的差异。为此引入如下概念,定义

)()(),(XY Y D X D Y X COV =

ρ

为随机变量X 和Y 的相关系数。

两幅图像数据相关系数计算源程序如下: 源程序11:

r=cov/std(A)/std(B);

%计算两幅图像各像素点的相关系数

源程序运行结果如图11:

由运行结果可知,相关系数在0~1之间,说明两幅图像具有一定的相关性。

图11 两幅图像各像素点的相关系数计算结果 (公式2)

3.2.9灰度直方图绘制

灰度直方图用于显示图像的灰度值分布情况,是数字图像处理中最简单和最实用的工具。MATLAB中提供了专门绘制直方图的函数imhist()。用它可以很简单的绘制出一幅图像的灰度直方图。在MATLAB中可以调用函数hist来绘制图像的灰度直方图,对应图像处理函数为imhist();用该函数可以方便的绘制图像的数据柱状图,在命令窗口输入imhist(C_gray)即可得到图像C_gray的灰度直方图。灰度直方图绘制源程序如下:(以第三幅图像为例)

源程序12:

C=imread('F:\images\达芬奇-蒙娜丽莎.png'); %图像数据的读取

C_gray=rgb2gray(C); %图像转换

imhist(C_gray); %绘制灰度直方图

源程序运行结果如图12:

图12 灰度直方图

3.3快速傅里叶变换

傅立叶变换是线性系统分析的一个有力的工具。它在图像处理,特别是在图像增强、复原和压缩中,扮演着非常重要的作用。实际中一般采用一种叫做快速傅立叶变换(FFT)的方法,MATLAB中的fft2指令用于得到二维FFT的结果,ifft2指令用于得到二维FFT逆变换的结果。

快速傅里叶变换与反变换源程序如下:(以第三幅图像为例)

源程序13:

C=imread('F:\images\达芬奇-蒙娜丽莎.png'); %读取图像信息

C_gray=rgb2gray(C); %图像转换

figure(1)

imshow(C_gray,[]) %显示图像

colorbar

title('原图像')

j=fft2(C_gray);

k=fftshift(j);

l=log(abs(k)); %进行傅里叶变换

figure(2);

imshow(l,[]) %显示傅里叶变换后结果

colorbar

title('二维FFT结果')

C_gray1=ifft2(j)/255; %进行傅里叶反变换

figure(3);

imshow(C_gray1,[]) %显示傅里叶反变换后结果

colorbar

title('傅里叶逆变换结果')

源程序运行结果如图13:

图13 原图像、二维FFT结果、傅里叶逆变换结果

matlab在统计数据的描述性分析的应用

统计数据的描述性分析 一、实验目的 熟悉在matlab中实现数据的统计描述方法,掌握基本统计命令:样本均值、样本中位数、样本标准差、样本方差、概率密度函数pdf、概率分布函数df、随机数生成rnd。 二、实验内容 1 、频数表和直方图 数据输入,将你班的任意科目考试成绩输入 >> data=[91 78 90 88 76 81 77 74]; >> [N,X]=hist(data,5) N = 3 1 1 0 3 X = 75.7000 79.1000 82.5000 85.9000 89.3000 >> hist(data,5)

2、基本统计量 1) 样本均值 语法: m=mean(x) 若x 为向量,返回结果m是x 中元素的均值; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的均值。 2) 样本中位数 语法: m=median(x) 若x 为向量,返回结果m是x 中元素的中位数; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的中位数3) 样本标准差 语法:y=std(x) 若x 为向量,返回结果y 是x 中元素的标准差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的标准差

std(x)运用n-1 进行标准化处理,n是样本的个数。 4) 样本方差 语法:y=var(x); y=var(x,1) 若x 为向量,返回结果y 是x 中元素的方差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的方差 var(x)运用n-1 进行标准化处理(满足无偏估计的要求),n 是样本的个数。var(x,1)运用n 进行标准化处理,生成关于样本均值的二阶矩。 5) 样本的极差(最大之和最小值之差) 语法:z= range(x) 返回结果z是数组x 的极差。 6) 样本的偏度 语法:s=skewness(x) 说明:偏度反映分布的对称性,s>0 称为右偏态,此时数据位于均值右边的比左边的多;s<0,情况相反;s 接近0 则可认为分布是对称的。 7) 样本的峰度 语法:k= kurtosis(x) 说明:正态分布峰度是3,若k 比3 大得多,表示分布有沉重的尾巴,即样本中含有较多远离均值的数据,峰度可以作衡量偏离正态分布的尺度之一。 >> mean(data) ,

MATLAB数据分析与多项式计算(M)

第7章 MATLAB数据分析与多项式计算 6.1 数据统计处理 6.2 数据插值 6.3 曲线拟合 6.4 离散傅立叶变换 6.5 多项式计算 6.1 数据统计处理 6.1.1 最大值和最小值 MATLAB提供的求数据序列的最大值和最小值的函数分别为max 和min,两个函数的调用格式和操作过程类似。 1.求向量的最大值和最小值 求一个向量X的最大值的函数有两种调用格式,分别是: (1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。 (2) [y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。 求向量X的最小值的函数是min(X),用法和max(X)完全相同。 例6-1 求向量x的最大值。 命令如下: x=[-43,72,9,16,23,47]; y=max(x) %求向量x中的最大值 [y,l]=max(x) %求向量x中的最大值及其该元素的位置 2.求矩阵的最大值和最小值 求矩阵A的最大值的函数有3种调用格式,分别是: (1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i 列上的最大值。 (2) [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。 (3) max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。

例6-2 分别求3×4矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。 3.两个向量或矩阵对应元素的比较 函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为: (1) U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B 同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。 (2) U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。 min函数的用法和max完全相同。 例6-3 求两个2×3矩阵x, y所有同一位置上的较大元素构成的新矩阵p。 6.1.2 求和与求积 数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为: sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。 prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。 prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。 例6-4 求矩阵A的每行元素的乘积和全部元素的乘积。 6.1.3 平均值和中值 求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为: mean(X):返回向量X的算术平均值。 median(X):返回向量X的中值。

Matlab对采样数据进行频谱分析

使用Matlab对采样数据进行频谱分析 1、采样数据导入Matlab 采样数据的导入至少有三种方法。 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。 第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。 第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load 等,如果采样数据保存在txt文件中,则推荐使用 textread命令。如 [a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。强烈推荐! 2、对采样数据进行频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100; t=[0:1/fs:100]; N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); %上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析 figure(1) plot(t,p); grid on title('信号 p(t)'); xlabel('t') ylabel('p')

Matlab大数据处理

Matlab大数据处理2:硬盘访问.mat文件 分类:Matlab Hack2013-09-08 20:16 146人阅读评论(0) 收藏举报Matlab程序中经常要访问.mat文件,通常在作法是用load函数直接加载.mat文件。如果.mat文件非常大,超过了系统可用内存的时候该怎么办呢?Matlab2013b为提供了matfile函数,matfile函数可以通过索引直接访问.mat文件中的Matlab变量,而无需将.mat文件加载入内存。 matfile有两种用法: m = matfile(filename),用文件名创建matfile对象,通过这个对象可以直接访问mat文件中的matlab变量。 m = matfile(filename,'Writable',isWritable),isWritable开启或关闭文件写操作。 使用示例: 1. 向mat文件中写入变量 x = magic(20); m = matfile('myFile.mat'); % 创建一个指向myFile.mat的matfile对象 m.x = x; % 写入x m.y(81:100,81:100) = magic(20); % 使用坐标索引

2. 加载变量 filename = 'topography.mat'; m = matfile(filename); topo = m.topo; %读取变量topo [nrows,ncols] = size(m,'stocks'); %读取stocks变量的size avgs = zeros(1,ncols); for idx = 1:ncols avgs(idx) = mean(m.stocks(:,idx)); end 3. 开启写权限 filename = 'myFile.mat'; m = matfile(filename,'Writable',true); 或者 m.Properties.Writable = true;

第6章matlab数据分析与多项式计算_习题答案

第6章 MATLAB数据分析与多项式计算 习题6 一、选择题 1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。B A.1 B.3 C.5 D.7 2.已知a为3×3矩阵,则运行mean(a)命令是()。B A.计算a每行的平均值 B.计算a每列的平均值 C.a增加一行平均值 D.a增加一列平均值 3.在MATLAB命令行窗口输入下列命令: >> x=[1,2,3,4]; >> y=polyval(x,1); 则y的值为()。 D A.5 B.8 C.24 D.10 4.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。D A.一个是标量,一个是方阵 B.都是标量 C.值相等 D.值不相等 5.在MATLAB命令行窗口输入下列命令: >> A=[1,0,-2]; >> x=roots(A); 则x(1)的值为()。 C A.1 B.-2 C. D. 6.关于数据插值与曲线拟合,下列说法不正确的是()。A A.3次样条方法的插值结果肯定比线性插值方法精度高。 B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。 C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到极小。 D.插值和拟合都是通过已知数据集来求取未知点的函数值。 二、填空题 1.设A=[1,2,3;10 20 30;4 5 6],则sum(A)= ,median(A)= 。 [15 27 39],[4 5 6[ 2.向量[2,0,-1]所代表的多项式是。2x2-1 3.为了求ax2+bx+c=0的根,相应的命令是(假定a、b、c已经赋值)。为了

实验一数据处理方法MATLAB实现

实验一数据处理方法的MATLAB实现 一、实验目的 学会在MATLAB环境下对已知的数据进行处理。 二、实验方法 1. 求取数据的最大值或最小值。 2. 求取向量的均值、标准方差和中间值。 3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。 三、实验设备 1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM 2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。 四、实验内容 1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。 2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。 五、实验步骤 1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。 双击打开Matlab,在命令窗口(command window)中,输入一组数据:实验一数据处理方法的MATLAB实现 一、实验目的 学会在MATLAB环境下对已知的数据进行处理。 二、实验方法 1. 求取数据的最大值或最小值。 2. 求取向量的均值、标准方差和中间值。 3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。 三、实验设备 1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM 2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。 四、实验内容

1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。 2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。 五、实验步骤 1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。 双击打开Matlab,在命令窗口(command window)中,输入一组数据: x=[1,4,2,81,23,45] x = 1 4 2 81 2 3 45 单击保存按钮,保存在Matlab指定目录(C:\Program Files\MATLAB71)下,文件名为“mydat.mat”。 2. 在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。 继续在命令窗口中输入命令: (1)求取最大值“max(a)”; >> max(x) ans = 81 (2)求取最小值“min(a)”; >> min(x) ans = 1 (3)求取均值“mean(a)”; >> mean(x) ans =

基于MATLAB的EXCEL数据计算与分析

基于MATLAB的EXCEL数据计算与分析 潜刘方 摘要:再怎么样希望先看摘要,阅读本文需要一定的MA TLAB基础知识,不需要excel相关知识。结合本人近期工作上的需要测量计算,想偷懒就选择了利用MATLAB偷懒,于是便有了本文。本文首先利用MA TLAB读取数据,计算,将数据写入excel,然后花了很大的精力来根据实际需要画图,最后将图保存在excel所在的文件夹下。这个m文件可谓花了我不少的时间和精力。最后根据m文件的不足(不能将图形输入到excel文档当中),进一步弥补这不足,就有了exlink(也叫excel link),在网上搜索了相关的知识,发现很多关于exlink 的培训,觉得实在可笑,所以就将exlink的使用写的比较详细,以供读者自行分析体会。关键字:MATLAB excel exlink 接口 一、前沿 MATLAB是一款应用在各个领域的数学软件,最初叫做矩阵实验室,专用于矩阵的运算,后来的版本再各个领域都得到了很好的应用,比如:通信、电力电子、电机控制、运动控制、计算机控制、自动控制,DSP数字信号处理。但是MATLAB对于数据的处理与可视化是很多软件所不能及的。 EXCEL作为办公必备软件,能对简单数据分析计算与作图分析,但是处理复杂数据显得力不从心,比如三维作图就无法利用EXCEL作出;EXCEL本身的函数远远没有MATLAB 多,MATLAB作为数据有其独特的优势,集成了很多数学函数,包括数据拟合差值等。MATLAB 可以从EXCEL中读取数据,经过相关运算之后又可以将数据写入EXCEL,假如需要重复性的对excel可以利用MATLAB编写函数,每次只要运行MATLAB程序就可以完成,大大节省时间和精力。 另外,MATLAB还有与EXCEL的接口,叫做EXLINK,运用这个接口可以在excel中完成MATLAB函数的调用,还能传送数据给MATLAB,从MATLAB当中读取数据,从MATLAB 当中读取图形,使用方便,操作简单。 二、基于MATLAB的数据分析 数据分析操作流程主要分为三步:第一步,从excel中读取数据;第二部:利用MATLAB 大量函数对数据分析处理;第三步:将分析结果写入excel中。在整个过程中,不需要打开excel软件,操作十分方便,每次操作唯一要做就是修改excel所在的目录及文件名。主要函数如下(具体使用方法可在MATLAB命令窗口输入help +函数名查看):Xlsread 从excel中读数据 Xlswrite 向excel中邪数据 num2str 将数字转换为字符串 strncmp 字符串比较 polyfit 数据拟合 polyval 具体数值代入求值 plot 作图

第6章MATLAB数据分析与多项式计算_习题答案

第6章MATLAB数据分析与多项式计算 习题6 一、选择题 1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。B A.1B.3C.5D.7 2.已知a为3×3矩阵,则运行mean(a)命令是()。B A.计算a每行的平均值B.计算a每列的平均值 C.a增加一行平均值D.a增加一列平均值 3.在MATLAB命令行窗口输入下列命令: >>x=[1,2,3,4]; >>y=polyval(x,1); 则y的值为()。D A.5B.8C.24D.10 4.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。D A.一个是标量,一个是方阵B.都是标量 C.值相等D.值不相等 5.在MATLAB命令行窗口输入下列命令: >>A=[1,0,-2]; >>x=roots(A); 则x(1)的值为()。C A.1B.-2C.1.4142D.-1.4142 6.关于数据插值与曲线拟合,下列说法不正确的是()。A A.3次样条方法的插值结果肯定比线性插值方法精度高。 B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。 C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到 极小。 D.插值和拟合都是通过已知数据集来求取未知点的函数值。 二、填空题 1.设A=[1,2,3;102030;456],则sum(A)=,median(A)=。 [152739],[456[ 2.向量[2,0,-1]所代表的多项式是。2x 2-1

2 3 .为 了求a x +b x +c =0的根,相应的命令是(假定a 、b 、c 值)。为了 将求得的根代回方程进行验证,相应的命令是。 x=roots([a,b,c]),polyval([a,b,c],x) 4.如果被插值函数是一个单变量函插值,相应的MATLAB 函数 是。一维,interp1 5.求曲线拟合多项式系数的函数是,计算多项式在给定点上函数值的函数 是。polyfit ,polyval 三、应用题 1.利用M A T L A B 提供的r a n d n 函数生 成符合 正态分 布的10× 5随A ,进行如下 操作: (1)A 各列元素的均值和标。 (2)A 的最大元素和最小元素。 (3)求A 每行元素的和以及全部元素之和。 (4对A 的每列元素按升序、每行元素按降序排序。 第一题: (1): A=randn(10,5) B=mean(A) C=std(A) (2): mx=max(max(A)) mn=min(min(A)) (3): sm=sum(A,2) sz=sum(sum(A)) (4): [Y,I]=sort(A,1) [Z,J]=sort(A,2); rot90(Z,1)'%旋转90度后,再转置便可得到每行按降序排列 2.已知多项式P1(x)=3x+2,P2(x)=5x 2-x+2,P3(x)=x 2-0.5,求: (1)P(x)=P 1(x)P2(x)P3(x)。 (2)P(x)=0的全部根。 (3)计算x i =0.2i(i=0,1,2,?,10)各点上的P(x i )。 第二题: (1): p1=[0,3,2]; p2=[5,-1,2]; 2

相关主题
文本预览
相关文档 最新文档