文档库 最新最全的文档下载
当前位置:文档库 › Matlab笔记——数据预处理——剔除异常值及平滑处理

Matlab笔记——数据预处理——剔除异常值及平滑处理

Matlab笔记——数据预处理——剔除异常值及平滑处理
Matlab笔记——数据预处理——剔除异常值及平滑处理

012. 数据预处理(1)——剔除异常值及平滑处理测量数据在其采集与传输过程中,由于环境干扰或人为因素有可能造成个别数据不切合实际或丢失,这种数据称为异常值。为了恢复数据的客观真实性以便将来得到更好的分析结果,有必要先对原始数据(1)剔除异常值;

另外,无论是人工观测的数据还是由数据采集系统获取的数据,都不可避免叠加上“噪声”干扰(反映在曲线图形上就是一些“毛刺和尖峰”)。为了提高数据的质量,必须对数据进行(2)平滑处理(去噪声干扰);

(一)剔除异常值。

注:若是有空缺值,或导入Matlab数据显示为“NaN”(非数),需要①忽略整条空缺值数据,或者②填上空缺值。

填空缺值的方法,通常有两种:A. 使用样本平均值填充;B. 使用判定树或贝叶斯分类等方法推导最可能的值填充(略)。

一、基本思想:

规定一个置信水平,确定一个置信限度,凡是超过该限度的误差,就认为它是异常值,从而予以剔除。

二、常用方法:拉依达方法、肖维勒方法、一阶差分法。

注意:这些方法都是假设数据依正态分布为前提的。

1. 拉依达方法(非等置信概率)

如果某测量值与平均值之差大于标准偏差的三倍,则予以剔除。

3x i x x S ->

其中,11

n i

i x x n ==∑为样本均值,1

2

211()1n

x i i S x x n =?? ???

=--∑为样本的标准偏差。

注:适合大样本数据,建议测量次数≥50次。

代码实例(略)。

2. 肖维勒方法(等置信概率)

在 n 次测量结果中,如果某误差可能出现的次数小于半次时,就予以剔除。

这实质上是规定了置信概率为1-1/2n ,根据这一置信概率,可计算出肖维勒系数,也可从表中查出,当要求不很严格时,还可按下列近似公式计算:

10.4ln()n n ω=+

Tab1. 肖维勒系数表

如果某测量值与平均值之差的绝对值大于标准偏差与肖维勒系数之积,则该测量值被剔除。

n x i x x S ω->

例1. 利用肖维勒方法对下列数据的异常值()进行剔除: 上述数据保存于文件 代码:

x=load('');

n=length(x); subplot(2,1,1); plot(x,'o');

title('原始数据')

axis([0,n+1,min(x)-1,max(x)+1]);

w=1+*log(n);

yichang = abs(x-mean(x)) > w*std(x);

% 若用拉依达方法,把w改成3即可,但本组数据将不能成功剔除异常值。x(yichang)=[];

save x -ASCII

subplot(2,1,2);

plot(x,'rs');

title('异常值剔除后数据');

axis([0,n+1,min(x)-1,max(x)+1]);

运行结果:x =

y =

3.一阶差分法(预估比较法)

用前两个测量值来预估新的测量值,然后用预估值与实际测量值

比较,若大于事先给定的允许差限值,则剔除该测量值。

预估值

112()?n n n n x

x x x ---+-= 比较判别:

?n n x x

W -< 注:该方法的特点是

(1)适合于实时数据采集与处理过程;

(2)精度除了与允许误差限的大小有关外,还与前两点测量值的精确度有关;

(3)若被测物理量的变化规律不是单调递增或单调递减函数,这一方法将在函数的拐点处产生较大的误差,严重时将无法使用。

(二)数据的平滑处理

对于一组测量数据(xi ,yi ) i=1,…,n ,不要直接就想着求出的拟合多项式的线性参数,而是要先平滑处理去掉“噪声”。平滑处理在科学研究中广泛使用,它可以减少测量中统计误差带来的影响,尤其被用于无法利用多次重复测量来得到其平均值的情况和当yi 随xi 有徒然变化的那些测量段。

1. “(2n+1点)单纯移动平均”平滑滤波

取出以yi 为中心的前后各n 个数据

(yi-n, …,yi-1,yi,…yi+n )求平均值代替yi ,即

'

1121n

i i k n

y y n +=-=+∑ 优点:方法简单,计算方便。

缺点:方法产生误差会造成信号失真;前后各n 个数据无法平滑。 适用性:适用于变化缓慢的数据。 注:n 越大平滑效果越好,但失真也越大。

例2. “9点单纯移动平均”平滑滤波 代码:

% 建立“n 点单纯移动平均”的滤波函数

% 注意函数要单独保存为与函数名同名的.m 文件 function Y=smooth_data(y,n) m=length(y); j=1;

for i=(n-1)/2+1:(m-(n-1)/2) p=i-(n-1)/2; q=i+(n-1)/2; Y(j)=sum(y(p:q))/n; j=j+1; end end

% 主程序 clc clear

t=-15::15; n=length(t);

Y=5./(1+t.^2); % 原始测试数据

y=Y+(1,n)); % 给测试数据加上噪声干扰

y1=smooth_data(y,9); % 调用函数作9点滤波处理 plot(1:n,Y,1:n,y,'-o',5:n-4,y1,'-*'); legend('无噪声','含噪声','9点平滑后');

运行结果:

2. “加权移动平均”平滑滤波 加权的基本思想:

作平均的区间内中心处数据的权值最大,愈远离中心处的数据权值越小小。这样就减小了对真实信号本身的平滑作用。

权重系数可以采用最小二乘原理,使平滑后的数据以最小均方差逼近原始数据。即令

'2min ()i k i k k

y y ++-∑

通常采用“五点二次平滑”(n=5, k=-2,-1,0,1,2)

22

012222

01222

22

0122

()0()0()0i k k i k k i k k y A A k A k y A A k A k k y A A k A k k +=-+=-+=-?---=???---=???---=??∑∑∑ 五点二次平滑权重系数表:

()'0210121

3121712335y y y y y y --=

-+++-

3. 用“smooth 函数”平滑滤波

调用格式:

Z = smooth(Y, span, method)

说明:

Z:平滑后的数据向量

Y:被平滑的数据向量

span:平滑点数,缺省为5点

method :平滑方法,缺省为移动平滑,其它还有

‘moving’—— Moving average (default)单纯移动平均‘lowess’——Lowess (linear fit)线性加权平滑

‘loess’——Loess (quadratic fit)二次加权平滑

'sgolay' ——Savitzky-Golay

'rlowess' ——Robust Lowess (linear fit)

'rloess' ——Robust Loess (quadratic fit)

例3.用matlab自带的平滑函数作平滑滤波实例。代码:

t=-10::10;

n=length(t);

y=5./(1+t.^2); % 原始测试数据

y1=y+*(1,n)); % 给测试数据加上噪声干扰

% 调用多个滤波函数作滤波处理

y2=smooth(y1,3); y3=smooth(y1,9);

y4=smooth(y1,3,'lowess'); y5=smooth(y1,9,'lowess');

y6=smooth(y1,3,'loess'); y7=smooth(y1,9,'loess');

y8=smooth(y1,3,'rloess'); y9=smooth(y1,9,'rloess');

figure(1); % 第一张图

subplot(3,2,1);

plot(t,y); axis([-10 10 -1 6]); grid on

title('无噪声信号');

subplot(3,2,2);

plot(t,y1,'-*'); axis([-10 10 -1 6]); grid on title('含噪声信号');

subplot(3,2,3);

plot(t,y2,'-*'); axis([-10 10 -1 6]); grid on title('3点单纯移动平均');

subplot(3,2,4);

plot(t,y3,'-*'); axis([-10 10 -1 6]); grid on title('9点单纯移动平均');

subplot(3,2,5);

plot(t,y4,'-*'); axis([-10 10 -1 6]); grid on title('3点线性加权平滑');

subplot(3,2,6);

plot(t,y5,'-*'); axis([-10 10 -1 6]); grid on title('9点线性加权平滑');

figure(2); % 第二张图

subplot(3,2,1);

plot(t,y); axis([-10 10 -1 6]); grid on

title('无噪声信号');

subplot(3,2,2);

plot(t,y1,'-*'); axis([-10 10 -1 6]); grid on title('含噪声信号');

subplot(3,2,3);

plot(t,y6,'-*'); axis([-10 10 -1 6]); grid on title('3点二次加权平滑');

subplot(3,2,4);

plot(t,y7,'-*'); axis([-10 10 -1 6]); grid on title('9点二次加权平滑');

subplot(3,2,5);

plot(t,y8,'-*'); axis([-10 10 -1 6]); grid on title('3点rloess平滑');

subplot(3,2,6);

plot(t,y9,'-*'); axis([-10 10 -1 6]); grid on title('9点rloess平滑');

运行结果:

Figure 1

Figure 2

4.用“smoothts函数”(盒子法、高斯窗法、指数法)

平滑滤波

调用格式:

output = smoothts(input)

output = smoothts(input, ‘b’, wsize) % 盒子法

output = smoothts(input, ‘g’, wsize, stdev) % 高斯窗方法

output = smoothts(input, ‘e’, n) % 指数法

例4.读取股市数据,对开盘价的240条数据,调用smoothts函数进行平滑处理。

代码:

x=xlsread('D:\Program Files\MATLAB\MyWorks\'); % 读取数据文件

p0=x(1:240,1)'; % 用开盘价所在列的前240条数据

% 注意若不转置可能导致后面处理结果异常

subplot(2,2,1);

plot(p0,'k','LineWidth',;

% 绘制平滑后曲线图,黑色实线,线宽

xlabel('观测序号');

ylabel('股市日开盘价');

axis([0 250 1000 1400]);

p1 = smoothts(p0,'b',30); % 用盒子法平滑数据,窗宽为30

subplot(2,2,2);

plot(p0,'.'); % 绘制日开盘价散点图

plot(p0,'.','markersize',3); 可以改变点的大小

hold on

plot(p1,'k','LineWidth',;

xlabel('观测序号');

ylabel('盒子法');

legend('原始散点','平滑曲线','location','northwest');

axis([0 250 1000 1400]);

p2 = smoothts(p0,'g',30);

% 高斯窗方法,窗宽为30,标准差为默认值

subplot(2,2,3);

plot(p0,'.');

hold on

plot(p2,'k','LineWidth',;

xlabel('观测序号'); ylabel('高斯窗方法');

legend('原始散点','平滑曲线','location','northwest'); axis([0 250 1000 1400]);

p3 = smoothts(p0,'e',30);% 用指数法平滑数据,窗宽为30 subplot(2,2,4);

plot(p0,'.');

hold on

plot(p3,'k','LineWidth',;

xlabel('观测序号'); ylabel('指数方法');

legend('原始散点','平滑曲线','location','northwest'); axis([0 250 1000 1400]);grid on

title('9点rloess平滑');

运行结果:

5.用medfilt1函数(一维中值滤波)

调用格式:

y = medfilt1(x,n)

y = medfilt1(x,n,blksz)

y = medfilt1(x,n,blksz,dim)

例5.产生一列正弦波信号,加入噪声信号,然后调用medfilt1函数对加入噪声的正弦波进行滤波(平滑处理)。

代码:

t = linspace(0,4*pi,500)';

% 产生一个从0到4*pi的向量,长度为500

y = 100*sin(t); % 产生正弦波信号

noise = normrnd(0,15,500,1);

% 产生500行1列的服从N(0,152)分布的随机数,作为噪声信号

y = y + noise; % 将正弦波信号加入噪声信号

subplot(2,1,1);

plot(t,y);

xlabel('时间');

ylabel('加噪声的正弦波');

% 调用medfilt1对加噪正弦波信号y进行中值滤波,并绘制波形图

yy = medfilt1(y,30); % 指定窗宽为30,对y进行中值滤波

subplot(2,1,2);

plot(t,y,'b:'); % b:表示蓝色虚线

hold on

plot(t,yy,'k','LineWidth',2); % 绘制平滑后曲线,黑色实线,线宽2 xlabel('时间');

ylabel('中值滤波');

legend('加噪波形','平滑后波形');

运行结果:

matlab归一化处理数据

matlab 中归一化的几种方法及其各自的适用条件 关于神经网络(matlab)归一化的整理 关于神经网络归一化方法的整理 由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james) 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 2、对数函数转换,表达式如下: y=log10(x) 说明:以10为底的对数函数转换。 3、反余切函数转换,表达式如下: y=atan(x)*2/PI 归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布; 当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 关于用premnmx语句进行归一化: premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint 和maxt分别为T的最小值和最大值。 premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。 我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。 下面介绍tramnmx函数: [Pn]=tramnmx(P,minp,maxp) 其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。 (by terry2008) matlab中的归一化处理有三种方法 1. premnmx、postmnmx、tramnmx

MATLAB数据及其运算_习题答案

第2章 MATLAB数据及其运算 习题2 一、选择题 1.下列可作为MATLAB合法变量名的是()。D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。C A.+10 B. C.2e D.2i 3.使用语句t=0:7生成的是()个元素的向量。A A.8 B.7 C.6 D.5 4.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。B A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指()。D A.所有元素 B.第一行元素 C.第三行元素 D.第三列元素 6.已知a为3×3矩阵,则运行a (1)=[]后()。A A.a变成行向量 B.a变为2行2列 C.a变为3行2列 D.a变为2行3列 7.在命令行窗口输入下列命令后,x的值是()。B >> clear >> x=i*j A.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。D A.34 B.354 C.453 D.43 9.下列语句中错误的是()。B A.x==y==3 B.x=y=3 C.x=y==3 D.y=3,x=y 10.find(1:2:20>15)的结果是()。C A.19 20 B.17 19 C.9 10 D.8 9 11.输入字符串时,要用()将字符括起来。C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。A A.9 B.11 C.7 D.18

13.eval('sqrt(4)+2')的值是()。B A.sqrt(4)+2 B.4 C.2 D.2, 2 14.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成 员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课 成绩,应采用的正确命令是()。D A.rmfield(student(1,2).scores(2)) B.rmfield(student(4).scores) C.student(4).scores(2)=0 D.student(1,2).scores(2)=[] 15.有一个2行2列的单元矩阵c,则c(2)是指()。B A.第一行第二列的元素内容 B.第二行第一列的元素内容 C.第一行第二列的元素 D.第二行第一列的元素 二、填空题 1.从键盘直接输入矩阵元素来建立矩阵时,将矩阵的元素用括起来,按矩阵 行的顺序输入各元素,同一行的各元素之间用分隔,不同行的元素之间用 分隔。中括号,逗号或空格,分号 2.设A=[1,2;3,4],B=[5,6;7,8],则A*B= , A.*B= 。 A*B=[19,22;43,50],A.*B=[5,12;21,32] 3.有3×3矩阵,求其第 5个元素的下标的命令是,求其第三行、第三列元 素的序号的命令是。[i,j]=ind2sub([3 3],5),ind=sub2ind([3 3],3,3) 4.下列命令执行后的输出结果是。20 >> ans=5; >> 10; >> ans+10 5.下列命令执行后,new_claim的值是。This is a great example. claim= 'This is a good example.'; new_claim=strrep(claim,'good','great') 三、应用题 1.命令X=[]与clear X有何不同请上机验证结论。 Clear X是将X从工作空间中删除,而X=[]是给X赋空矩阵。空矩阵存在于工作空间 中,只是没有任何元素。 2.在一个MATLAB命令中,6?+?7i和6?+ 7*i有何区别i和I有何区别 3.设A和B是两个同大小的矩阵,试分析A*B和A.*B、A./B和B.\A、A/B和B\A的 区别如果A和B是两个标量数据,结论又如何 4.写出完成下列操作的命令。 (1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。 (2)删除矩阵A的第5号元素。

数据标准化.归一化处理

数据的标准化 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”

和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。 一、Min-max 标准化 min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为: 新数据=(原数据-极小值)/(极大值-极小值) 二、z-score 标准化 这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。 新数据=(原数据-均值)/标准差 spss默认的标准化方法就是z-score标准化。用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。步骤如下: 求出各变量(指标)的算术平均值(数学期望)xi和标准差si ; .进行标准化处理:zij=(xij-xi)/si,其中:zij为标准化后的变量值;xij为实际变量值。 将逆指标前的正负号对调。标准化后的变量值围绕0上下波动,

MATLAB统计分析与应用:40个案例分析

MATLAB统计分析与应用:40个案例分析 ISBN:9787512400849 分类号:C819 /115 出版社:北京航空航天大学出版社 【内容简介】 本书从实际应用的角度出发,以大量的案例详细介绍了MA TLAB环境下的统计分析与应用。 本书主要内容包括:利用MA TLAB制作统计报告或报表;从文件中读取数据到MA TLAB;从MA TLAB中导出数据到文件;数据的平滑处理、标准化变换和极差归一化变换;生成一元和多元分布随机数;蒙特卡洛方法;参数估计与假设检验;Copula理论及应用实例;方差分析;基于回归分析的数据拟合;聚类分析;判别分析;主成分分析;因子分析;图像处理中的统计应用等。 本书可以作为高等院校本科生、研究生的统计学相关课程的教材或教学参考书,也可作为从事数据分析与数据管理的研究人员的参考用书。 【目录】 第1章利用MA TLAB生成Word和Excel文档 1.1 组件对象模型(COM) 1.1.1 什么是CoM 1.1.2 CoM接口 1.2 MA TLAB中的ActiveX控件接口技术 1.2.1 actxcontrol函数 1.2.2 actxcontrollist函数 1.2.3 actxcontrolselect函数 1.2.4 actxserver函数 1.2.5 利用MA TLAB调用COM对象 1.2.6 调用actxserver函数创建组件服务器 1.3 案例1:利用MA TLAB生成Word文档 1.3.1 调用actxserver函数创建Microsoft Word服务器 1.3.2 建立Word文本文档 1.3.3 插入表格 1.3.4 插入图片 1.3.5 保存文档 1.3.6 完整代码 1.4 案例2:利用MA TLAB生成Excel文档 1.4.1 调用actxserver函数创建Microsoft Excel服务器 1.4.2 新建Excel工作簿 1.4.3 获取工作表对象句柄 1.4.4 插入、复制、删除、移动和重命名工作表 1.4.5 页面设置 1.4.6 选取工作表区域 1.4.7 设置行高和列宽 1.4.8 合并单元格 1.4.9 边框设置 1.4.10 设置单元格对齐方式

基于Matlab的归一化二阶系统课程设计

Matlab 实训设计(一) 二阶系统变阻尼比的动态仿真系统的设计 一.设计一个二阶系统的变阻尼比的动态仿真系统 二.步骤 (1)程序功能描述 1. 典型二阶系统的传递函数为 ω ωωξ22 2 2)(n n n S s ++= Φ 2. 归一化二阶系统的单位阶跃响应 1、ζ=0(无阻尼)时,系统处于等幅振荡,超调量最大,为100%,并且系统发生不衰减的振荡,永远达不到稳态。 2、0<ζ<1(欠阻尼)时,系统为衰减振荡。为了获得满意的二阶系统的瞬态响应特性,通常阻尼比在0.4~0.8的范围内选择。这时系统在响应的快速性、稳定性等方面都较好。 3、在ζ=1(临界阻尼)及ζ>1(过阻尼)时,二阶系统的瞬态过程具有单调上升的特性,以ζ=1时瞬态过程最短。 (2)程序界面设计 图形界面中的grid on 、grid off 分别是网格和绘图框的打开和关闭按钮

(3)程序测试运行 在编辑框中+还可以输入如0:0.1:0.8的阻尼系数数组,这表示把0到0.8之间的长度以0.1为跨距等份,再以每点的数据得到响应曲线,上式就包含了 ze-ta=0、0.1、0.2···、0.8总共8个阻尼比下的响应曲线

三.控件属性设置 (1)String %显示在控件上的字符串 (2)Callback 回调函数 (3)enable 表示控件是否有效 (4)Tag 控件标记,用于标识控件 四.设计:实现如下功能的系统界面 (1)在编辑框中,可以输入表示阻尼比的标量成行数组、数值,并在按了Enter 键后,在轴上画出图形,坐标范围x[1,15],y[0,2]。 (2)在点击grid on或者grid off键时,在轴上显示或删除“网格线”。(3)在菜单[options]下,有两个下拉菜单[Box on]和[Box off],缺省值为off。(4)所设计界面和其上图形,都按比例缩放。 五.各个控件属性设置 (1)在图形窗中设置 Name 我的设计 Rize on %图窗可以缩放 Tag figure1 %生成handles. figure1 (2)在轴框中 Units normalizen Box off坐标轴不封闭 Tag axes1 XLim[0,15]%x范围 YLim[1,2]%y范围 (3)静态文件框1 fontsize 0.696 fritunits normalizen String“归一化二阶阶跃响应” Tag text1 Horizontalignment Center

实验一数据处理方法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图像处理归一化

matlab图像处理为什么要归一化和如何归一化 一、为什么归一化 1. 基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响。也就是转换成唯一的标准形式以抵抗仿射变换 图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。 因为我们这次的图片有好多都是一个系列的,所以老师把这个也作为我研究的一个方向。 我们主要要通过归一化减小医学图片由于光线不均匀造成的干扰。 2.matlab里图像数据有时候必须是浮点型才能处理,而图像数据本身是0-255的UNIT型数据所以需要归一化,转换到0-1之间。 3.归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。目的是为了: (1).避免具有不同物理意义和量纲的输入变量不能平等使用 (2).bp中常采用sigmoid函数作为转移函数,归一化能够防止净输入绝对值过大引起的神经元输出饱和现象 (3).保证输出数据中数值小的不被吞食 3.神经网络中归一化的原因 归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 二、如何归一化 matlab中的归一化处理有三种方法 1. premnmx、postmnmx、tramnmx 2. restd、poststd、trastd 3. 自己编程 (1)线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 (2)对数函数转换,表达式如下: y=log10(x)

关于神经网络(matlab)归一化的整理

关于神经网络(matlab)归一化的整理 关于神经网络归一化方法的整理 由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james) 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 2、对数函数转换,表达式如下: y=log10(x) 说明:以10为底的对数函数转换。 3、反余切函数转换,表达式如下: y=atan(x)*2/PI 归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布; 当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 关于用premnmx语句进行归一化: premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint 和maxt分别为T的最小值和最大值。 premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。 我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。 下面介绍tramnmx函数: [Pn]=tramnmx(P,minp,maxp) 其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。 (by terry2008) matlab中的归一化处理有三种方法 1. premnmx、postmnmx、tramnmx 2. restd、poststd、trastd 3. 自己编程 具体用那种方法就和你的具体问题有关了

MATLAB在化工数据处理中的应用

化工数据处理与实验设计 期中论文 Matlab在化工数据处理中的应用 姓名:陈奕含 学号:2012115134 班级:化学工程与工艺

Matlab在化工数据处理中的应用 一、MATLAB简介 Matlab软件包最初是1967年由Clere Maler用FORTRAN语言设计和编写的。1984年Mathworks公司用C语言完成了Matlab的商业化版本并推向市场。经过20余年的改进,Matlab已发展成为一个具有极高通用性的、带有众多实用工具的运算平台,成为国际上广泛认可的优秀科学计算软件。 Matlab是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国Mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 Matlab和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且Matlab也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JA V A的支持。其特点如下: 1.支持多平台操作系统(Windows、Unix等)。 2.是一种简单易学的编程语言。 3.Matlab程序很容易维护。 4.编程效率很高。由于用户程序可直接调用大量的Matlab函数,因此编程速度快。 5.用途广泛。可用于数值计算和符号计算、数据分析、工程与科学绘图、图形用户界面设计、建模和仿真、控制系统设计、数字图像信号处理以及财务工程等。 6.功能超强。包含600多个常用算法内建函数,有众多面向具体应用的工具箱(如偏微分方程、最优化方法、数理统计、样条函数、神经网络工具箱等)和simulink仿真模块。此外,其他产品延伸了Matlab的能力,包括数据采集和依靠Matlab语言编程产生独立的C/C++代码等等。其算法函数大多由国际知名专家完成,算法稳定可靠、效率高。 7.具有开放式结构,扩展功能强。Matlab的开放式结构使Matlab产品族很

基于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 作图

数据归一化的Matlab实现

数据归一化汇总 ============外一篇有关mapminmax的用法详解by faruto================================== 几个要说明的函数接口: [Y,PS]=mapminmax(X) [Y,PS]=mapminmax(X,FP) Y=mapminmax('apply',X,PS) X=mapminmax('reverse',Y,PS) 用实例来讲解,测试数据x1=[124],x2=[523]; >>[y,ps]=mapminmax(x1) y= -1.0000-0.3333 1.0000 ps= name:'mapminmax' xrows:1 xmax:4 xmin:1 xrange:3 yrows:1 ymax:1 ymin:-1

yrange:2 其中y是对进行某种规范化后得到的数据,这种规范化的映射记录在结构体ps中.让我们来看一下这个规范化的映射到底是怎样的? Algorithm It is assumed that X has only finite real values,and that the elements of each row are not all equal. ?y=(ymax-ymin)*(x-xmin)/(xmax-xmin)+ymin; ?[关于此算法的一个问题.算法的假设是每一行的元素都不想相同,那如果都相同怎么办?实现的办法是,如果有一行的元素都相同比 如xt=[111],此时xmax=xmin=1,把此时的变换变为y= ymin,matlab内部就是这么解决的.否则该除以0了,没有意义!] 也就是说对x1=[124]采用这个映射f:2*(x-xmin)/(xmax-xmin)+(-1),就可以得到y=[-1.0000-0.3333 1.0000] 我们来看一下是不是:对于x1而言xmin=1,xmax=4; 则y(1)=2*(1-1)/(4-1)+(-1)=-1; y(2)=2*(2-1)/(4-1)+(-1)=-1/3=-0.3333; y(3)=2*(4-1)/(4-1)+(-1)=1; 看来的确就是这个映射来实现的. 对于上面algorithm中的映射函数其中ymin,和ymax是参数,可以自己设定,默认为-1,1;

第2章matlab数据及其运算_习题答案

第2章M A T L A B数据 及其运算_习题答案-CAL-FENGHAI.-(YICAI)-Company One1

第2章 MATLAB数据及其运算 习题2 一、选择题 1.下列可作为MATLAB合法变量名的是()。D A.合计 B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是()。C A.+10 B. C.2e D.2i 3.使用语句t=0:7生成的是()个元素的向量。A A.8 B.7 C.6 D.5 4.执行语句A=[1,2,3;4,5,6]后,A(3)的值是()。B A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指()。D A.所有元素 B.第一行元素 C.第三行元素 D.第三列元素 6.已知a为3×3矩阵,则运行a (1)=[]后()。A A.a变成行向量 B.a变为2行2列 C.a变为3行2列 D.a变为2行3列 7.在命令行窗口输入下列命令后,x的值是()。B >> clear >> x=i*j A.不确定 B.-1 C.1 D.i*j 8.fix(354/100)+mod(354,10)*10的值是()。D A.34 B.354 C.453 D.43 9.下列语句中错误的是()。B A.x==y==3 B.x=y=3 C.x=y==3 D.y=3,x=y 10.find(1:2:20>15)的结果是()。C A.19 20 B.17 19 C.9 10 D.8 9 11.输入字符串时,要用()将字符括起来。C A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是()。A A.9 B.11 C.7 D.18

基于MATLAB的数据实时采集与处理的实现_梁湘

0.引言 MATLAB/SIMULINK是现在流行的仿真软件。MATLAB集数学计算结果可视化和编程于一体,能够方便地进行科学计算和大量工程运算的数学软件;SIMULINK是MATLAB的常用组件,它是基于MATLAB的语言环境下实现动态装置建模,仿真和分析的一个集成环境,支持连续、离散及两者混合的线性和非线性装置,也支持具有多种采样速率的多速率装置,被广泛的用于控制系统设计和系统仿真等诸多领域。但是MATLAB不能直接对硬件进行读写操作,从而影响了在控制系统仿真上的应用范围。MATLAB提供了众多外部函数接口,本文从中选择MEX文件接口作为MATLAB对外界进行读写的通道,首先对USBCAN接口卡进行设计,接下来以这个接口卡为通道,实现了MATLAB对于硬件的访问。 1.USB-CAN转接卡的设计 首先对于USBCAN转接卡进行设计,以便于设计出的转接卡能作为通信通道,让MATLAB能够通过USBCAN转换模块采集CAN总线上的数据,然后进行仿真。 在基于CAN总线的控制系统中,作为下层网络的CAN总线与计算机之间的通信以往是通过基于RS232接口、PC机上的ISA总线和PCI总线的通信适配卡来完成的。这些种类的转接卡有传输速率较慢,设计复杂和不便于扩展等缺点。 本课题设计的CAN-USB转接卡的功能是:采集CAN总线上的数据,通过USB总线和上位控制站之间进行数据传输。在通讯方面,一方面要满足CAN的协议标准,实现开放性,互操作性,在高速通信的情况下做到拥有较好的抗干扰性能;另一方面,转接卡兼容USB1.1总线,转接卡可以通过USB连接到PC机。其主要设计参数如下:数据传输速率:波特率在5Kbit/s~1Mbit/s范围内: USB总线标准:满足USB1.1协议的标准USB设备A/B插座 CAN总线接口:DB9针型插座,符合DeviceNET和CANopen标准CAN协议:支持CAN2.0B协议(兼容CAN2.0A协议) 供电方式:USB总线供电(+5V)或者使用外接电源(+9V~+25V,400mA) 运行环境:WindowsXP 转接卡的方案设计的思想是在已经存在的CAN总线网络中增加一个数据采集节点,用来采集各个节点发来的的数据,再通过USB总线上传到PC机,进行分析过和存储等操作。设计的具体实现是采用单片机通过控制USB控制芯片,与PC机进行通信,从PC机得到采集数据的指令和向PC机上传数据。同时,因为USB总线速度较快,并且是要从CAN网络读取数据分析,所以单片机通过不同的片选信号控制两个CAN控制芯片,分别能够从两路CAN网络上采集数据,和将从PC机得到的数据通过两个CAN控制芯片分别发送出去。所设计的系统结构如下图1所表示: 两路CAN CAN总线 USB协议具有1.1和2.0两个版本。从MATLAB对数据进行读写出发,并且处于CAN总线所能提供的速率限制,USB协议1.1版本已经能满足我们所需要的性能要求。USB1.1提供两种数据传输速率,低速传输为1.5Mbps,全速传输为12Mbps,并支持所有USB的特性,如热插拔、具有统一的设备标准以及可以连接多个设备等。CAN总线目前有CAN协议2.0A和CAN协议2.0B两个版本。本次设计所选用的单片机和CAN网络控制芯片均可支持CAN协议2.0A和CAN协议2.0B两个版本。 图1USBCAN转接卡的总体设计 本设计选用89CS52作为单片机来对CAN控制芯片和USB控制芯片操作。89CS52是ATMEL公司生产的低电压,高性能的单片机,兼容80C51构架。选择SJA1000做CAN总线控制芯片。这款芯片是一个由飞利浦公司生产的独立的CAN控制器,它在汽车和普通的工业应用上都具有较为先进的特征。它能适合多种应用,特别是在系统优化、诊断和维护方面,并且能和支持80C51构架的单片机兼容。选择PCA82C250作为CAN总线接口芯片,这款芯片专为CAN总线进行差分通信而设计。 根据设计要求,USBCAN转接卡应该直接能与PC机相连接,再与CAN总线进行通信。对比USB协议三层设备:主机(HOST),集线器(HUB)和设备(NODE),PC机作为主机,USBCAN转接卡是作为最下面一个级别:设备(NODE),只需要与其相连而不需要再作为HUB接入其它USB设备。所以需要挑选的是能够在充当设备(NODE)的芯片,这款芯片应该可以与51系列单片机相连通,并且支持USB协议1.1版本。市场上此类控制芯片主要有两种,一种是将单片机(MCU)集成到USB芯片上,代表如EZ-USBFX2;另一种是纯粹的USB接口芯片,如PDIUSBD12。考虑到前文提出的设计指标等因素,本文选择了飞利浦公司的PDIUSBD12芯片。PDIUSBD12是一款性价比很高的USB器件,广泛的采用与许多PC机的外设。 硬件设计完成后,对于固化在单片机ROM中的程序进行设计。单片机ROM中的程序主要采用中断驱动。它将USB总线和CAN总线上的数据请求都当作中断处理,在相应的中断处理程序中再将所采集到的数据转发到另外一个总线。 最后对于转接卡的驱动程序进行设计。驱动程序采用Windows体系下WDM驱动程序模型。在这种模型下,对于USB设备来说,驱动程序可以分为USB底层驱动程序和USB功能驱动程序。USB底层驱动程序在实际运行中对实际硬件进行操作,实现了复杂的底层通信;USB功能驱动程序则一般由设备开发者编写,逻辑位置位于USB底 基于MATLAB的数据实时采集与处理的实现 梁湘 (同济大学机械工程学院中国上海200092) 【摘要】本文的利用USB与CAN两种技术的优点设计了通信转接卡,提高整个网络的通信质量。接下来,采用该转接卡作为MATLAB与SIMULINK环境下实时仿真的通信转接卡,进行MATLAB环境下对CAN总线数据的实时采集、处理与仿真功能,完成MATLAB与SIMULINK下对控制系统的仿真和实时控制,为类似的通信转接卡的研究提供一定的参考。 【关键词】USB-CAN转接卡;半实物平台;MATLAB;SIMULINK TheRealizationofReal-timeReadingandWritinginMATLAB LiangXiang (SchoolofMechanicalEngineering,TongjiUniversity,Shanghai200092) 【Abstract】ThepapertakesadvantageofCAN-busandUSB-bustodesignUSBCANadapter.Theadapterimprovesthequalityofnetwork’scommunication.Following,thepapertakesUSBCANadapterasachannelwithwhichMATLABcancollectdatafromCAN-bus.Inthisway,MATLABcancollect,handleandsimulatedatainreal time.

用MATLAB实现大数据挖掘地一种算法

一、数据挖掘的目的 数据挖掘(Data Mining)阶段首先要确定挖掘的任务或目的。数据挖掘的目的就是得出隐藏在数据中的有价值的信息。数据挖掘是一门涉及面很广的交叉学科,包括器学习、数理统计、神经网络、数据库、模式识别、粗糙集、模糊数学等相关技术。它也常被称为“知识发现”。知识发现(KDD)被认为是从数据中发现有用知识的整个过程。数据挖掘被认为是KDD过程中的一个特定步骤,它用专门算法从数据中抽取模式(patter,如数据分类、聚类、关联规则发现或序列模式发现等。数据挖掘主要步骤是:数据准备、数据挖掘、结果的解释评估。 二、数据挖掘算法说明 确定了挖掘任务后,就要决定使用什么样的挖掘算法。由于条件属性在各样本的分布特性和所反映的主观特性的不同, 每一个样本对应于真实情况的局部映射。建立了粗糙集理论中样本知识与信息之间的对应表示关系, 给出了由属性约简求约简决策表的方法。基于后离散化策略处理连续属性, 实现离散效率和信息损失之间的动态折衷。提出相对值条件互信息的概念衡量单一样本中各条件属性的相关性, 可以充分利用现有数据处理不完备信息系统。 本次数据挖掘的方法是两种,一是找到若干条特殊样本,而是找出若干条特殊条件属性。最后利用这些样本和属性找出关联规则。(第四部分详细讲解样本和属性的选择) 三数据预处理过程 数据预处理一般包括消除噪声、推导计算缺值数据、消除重复记录、完成数据类型转换(如把连续值数据转换为离散型数据,以便于符号归纳,或是把离散型数据转换为连续)。 本文使用的数据来源是名为“CardiologyCategorical”的excel文件中的“源数据”。该数据表共303行,14个属性。即共有303个样本。将该数据表的前200行设为训练样本,剩下后的103行作为测试样本,用基于粗糙集理论的属性约简的方法生成相应的规则,再利用测试样本对这些规则进行测试。 首先对源数据进行预处理,主要包括字符型数据的转化和数据的归一化。 数据预处理的第一步是整理源数据,为了便于matlab读取数据,把非数字数据转换为离散型数字数据。生成lisanhua.xsl文件。这一部分直接在excel工作表中直接进行。 步骤如下: 将属性“sex”中的“Male”用“1”表示,“Female”用“2”表示; 将属性“chest pain type”中的“Asymptomatic”用“1”表示,“Abnormal Angina”用“2”表示,“Angina”用“3”表示,“NoTang”用“4”表示;

基于Matlab基本图像处理程序

基于Matlab基本图像处理程序

————————————————————————————————作者:————————————————————————————————日期: ?

图像读入 ●从图形文件中读入图像imread Syntax:A = imread(, fmt) :指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到所制定的文件,会尝试查找一个名为的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含RGB 真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map]=imread(, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1,val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow() himage=imshow(...)

●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像素在图像中出现的概率。 图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。 图像的灰度直方图运算: imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。 ●Imhist函数=Display histogramof image data显示灰度直方图的函数 ●Syntax: ①imhist(I) % I为要计算的灰度直方图图像 ②imhist(I, n) %n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。 ③imhist(X, map) ④[counts,x] =imhist(...)%counts直方图数据向量。counts(i)第i个灰度区间中的像素数目。x是保存了对应的灰度小区间的向量。 注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可

相关文档
相关文档 最新文档