当前位置:首页 » 操作系统 » 最近邻算法matlab

最近邻算法matlab

发布时间: 2022-09-27 18:43:02

A. 求助matlab高手翻译程序

例如:使用文本界面

这里是一个例子,使用文本界面。图形界面足够的用途,所以你不可能使用文本界面。然而,看一看,现有的算法列表,以下。

##加载数据集

>>负荷数据/云

>>谁

名称的大小字节级

distribution_parameters欧盘1464结构数组

模式2x双阵列

目标1x双阵列

总计为15076个元素使用个字节

数据集存储在变量中,模式和目标。

##选择试验方法,训练数据和测试数据

%使画根据错误的选择方法

>>=长度(目标);

%=20;

[test_indices,train_indices]=make_a_draw(楼(%/100 *我),我);

train_patterns=模式(train_indices:,);

train_targets=目标(:,train_indices);

test_patterns=模式(test_indices:,);

test_targets=目标(:,test_indices);

##选择分类器。找出参数使用帮助<分类器名称>

>>帮助nearest_neighbor

利用最近邻算法分类

输入:

train_patterns-训练模式

train_targets-训练目标

test_patterns-测试模式

最近邻-邻居数

输出

test_targets-预测目标

##建立分类和分类数据

>>test_out=nearest_neighbor(train_patterns,train_targets,test_patterns,3);

##估计误差

>>=平均(test_targets~=test_out)

误差=

0.1313

B. 用matlab 三次多项式函数插值算法怎么写 或者说下设计思路 设计主要结构 功能模块 流程

看看这个能不能帮到你:Matlab中插值函数汇总和使用说明:MATLAB中的插值函数为interp1,其调用格式为:yi=interp1(x,y,xi,'method')其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量,'method'表示采用的插值方法,MATLAB提供的插值方法有几种:'nearest'是最邻近插值,'linear'线性插值;'spline'三次样条插值;'cubic'立方插值.缺省时表示线性插值。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。例如:在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,10,18,24,28,27,25,20,18,15,13,推测中午12点(即13点)时的温度.x=0:2:24;y=[129910182428272520181513];a=13;y1=interp1(x,y,a,'spline')结果为:27.8725若要得到一天24小时的温度曲线,则:xi=0:1/3600:24;yi=interp1(x,y,xi,'spline');plot(x,y,'o',xi,yi)命令1interp1功能一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。x:原始数据点Y:原始数据点xi:插值点Yi:插值点格式(1)yi=interp1(x,Y,xi)返回插值向量yi,每一元素对应于参量xi,同时由向量x与Y的内插值决定。参量x指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。(2)yi=interp1(Y,xi)假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。(3)yi=interp1(x,Y,xi,method)用指定的算法计算插值:’nearest’:最近邻点插值,直接完成计算;’linear’:线性插值(缺省方式),直接完成计算;’spline’:三次样条函数插值。对于该方法,命令interp1调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline用它们执行三次样条函数插值;’pchip’:分段三次Hermite插值。对于该方法,命令interp1调用函数pchip,用于对向量x与y执行分段三次内插值。该方法保留单调性与数据的外形;’cubic’:与’pchip’操作相同;’v5cubic’:在MATLAB5.0中的三次插值。对于超出x范围的xi的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1将对超出的分量执行外插值算法。(4)yi=interp1(x,Y,xi,method,'extrap')对于超出x范围的xi中的分量将执行特殊的外插值法extrap。(5)yi=interp1(x,Y,xi,method,extrapval)确定超出x范围的xi中的分量的外插值extrapval,其值通常取NaN或0。例1>>x=0:10;y=x.*sin(x);>>xx=0:.25:10;yy=interp1(x,y,xx);>>plot(x,y,'kd',xx,yy)例2>>year=1900:10:2010;>>proct=[75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344267.893];>>p1995=interp1(year,proct,1995)>>x=1900:1:2010;>>y=interp1(year,proct,x,'pchip');>>plot(year,proct,'o',x,y)插值结果为:p1995=252.9885命令2interp2功能二维数据内插值(表格查找)格式(1)ZI=interp2(X,Y,Z,XI,YI)返回矩阵ZI,其元素包含对应于参量XI与YI(可以是向量、或同型矩阵)的元素,即Zi(i,j)←[Xi(i,j),yi(i,j)]。用户可以输入行向量和列向量Xi与Yi,此时,输出向量Zi与矩阵meshgrid(xi,yi)是同型的。同时取决于由输入矩阵X、Y与Z确定的二维函数Z=f(X,Y)。参量X与Y必须是单调的,且相同的划分格式,就像由命令meshgrid生成的一样。若Xi与Yi中有在X与Y范围之外的点,则相应地返回nan(NotaNumber)。(2)ZI=interp2(Z,XI,YI)缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一种情形进行计算。(3)ZI=interp2(Z,n)作n次递归计算,在Z的每两个元素之间插入它们的二维插值,这样,Z的阶数将不断增加。interp2(Z)等价于interp2(z,1)。(4)ZI=interp2(X,Y,Z,XI,YI,method)用指定的算法method计算二维插值:’linear’:双线性插值算法(缺省算法);’nearest’:最临近插值;’spline’:三次样条插值;’cubic’:双三次插值。例3:>>[X,Y]=meshgrid(-3:.25:3);>>Z=peaks(X,Y);>>[XI,YI]=meshgrid(-3:.125:3);>>ZZ=interp2(X,Y,Z,XI,YI);>>surfl(X,Y,Z);holdon;>>surfl(XI,YI,ZZ+15)>>axis([-33-33-520]);shadingflat>>holdoff例4:>>years=1950:10:1990;>>service=10:10:30;>>wage=[150.697199.592187.625179.323195.072250.287203.212179.092322.767226.505153.706426.730249.633120.281598.243];>>w=interp2(service,years,wage,15,1975)插值结果为:w=190.6288命令3interp3功能三维数据插值(查表)格式(1)VI=interp3(X,Y,Z,V,XI,YI,ZI)找出由参量X,Y,Z决定的三元函数V=V(X,Y,Z)在点(XI,YI,ZI)的值。参量XI,YI,ZI是同型阵列或向量。若向量参量XI,YI,ZI是不同长度,不同方向(行或列)的向量,这时输出参量VI与Y1,Y2,Y3为同型矩阵。其中Y1,Y2,Y3为用命令meshgrid(XI,YI,ZI)生成的同型阵列。若插值点(XI,YI,ZI)中有位于点(X,Y,Z)之外的点,则相应地返回特殊变量值NaN。(2)VI=interp3(V,XI,YI,ZI)缺省地,X=1:N,Y=1:M,Z=1:P,其中,[M,N,P]=size(V),再按上面的情形计算。(3)VI=interp3(V,n)作n次递归计算,在V的每两个元素之间插入它们的三维插值。这样,V的阶数将不断增加。interp3(V)等价于interp3(V,1)。(4)VI=interp3(,method)%用指定的算法method作插值计算:‘linear’:线性插值(缺省算法);‘cubic’:三次插值;‘spline’:三次样条插值;‘nearest’:最邻近插值。说明在所有的算法中,都要求X,Y,Z是单调且有相同的格点形式。当X,Y,Z是等距且单调时,用算法’*linear’,’*cubic’,’*nearest’,可得到快速插值。例5>>[x,y,z,v]=flow(20);>>[xx,yy,zz]=meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);>>vv=interp3(x,y,z,v,xx,yy,zz);>>slice(xx,yy,zz,vv,[69.5],[12],[-2.2]);shadinginterp;colormapcool命令4interpft功能用快速Fourier算法作一维插值格式(1)y=interpft(x,n)返回包含周期函数x在重采样的n个等距的点的插值y。若length(x)=m,且x有采样间隔dx,则新的y的采样间隔dy=dx*m/n。注意的是必须n≥m。若x为一矩阵,则按x的列进行计算。返回的矩阵y有与x相同的列数,但有n行。(2)y=interpft(x,n,dim)沿着指定的方向dim进行计算命令5griddata功能数据格点格式(1)ZI=griddata(x,y,z,XI,YI)用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,z。griddata将返回曲面z在点(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid生成的一样)。XI可以是一行向量,这时XI指定一有常数列向量的矩阵。类似地,YI可以是一列向量,它指定一有常数行向量的矩阵。(2)[XI,YI,ZI]=griddata(x,y,z,xi,yi)返回的矩阵ZI含义同上,同时,返回的矩阵XI,YI是由行向量xi与列向量yi用命令meshgrid生成的。(3)[XI,YI,ZI]=griddata(.,method)用指定的算法method计算:‘linear’:基于三角形的线性插值(缺省算法);‘cubic’:基于三角形的三次插值;‘nearest’:最邻近插值法;‘v4’:MATLAB4中的griddata算法。命令6spline功能三次样条数据插值格式(1)yy=spline(x,y,xx)对于给定的离散的测量数据x,y(称为断点),要寻找一个三项多项式y=p(x),以逼近每对数据(x,y)点间的曲线。过两点(xi,yi)和(xi+1,yi+1)只能确定一条直线,而通过一点的三次多项式曲线有无穷多条。为使通过中间断点的三次多项式曲线具有唯一性,要增加两个条件(因为三次多项式有4个系数):a.三次多项式在点(xi,yi)处有:p¢i(xi)=p¢i(xi);b.三次多项式在点(xi+1,yi+1)处有:p¢i(xi+1)=pi¢(xi+1);c.p(x)在点(xi,yi)处的斜率是连续的(为了使三次多项式具有良好的解析性,加上的条件);d.p(x)在点(xi,yi)处的曲率是连续的;对于第一个和最后一个多项式,人为地规定如下条件:①.p¢1¢(x)=p¢2¢(x)②.p¢n¢(x)=p¢n¢-1(x)上述两个条件称为非结点(not-a-knot)条件。综合上述内容,可知对数据拟合的三次样条函数p(x)是一个分段的三次多项式:ïïîïïí죣££££=nnn+1223112p(x)xxxp(x)xxxp(x)xxxp(x)LLLL其中每段pi(x)都是三次多项式。该命令用三次样条插值计算出由向量x与y确定的一元函数y=f(x)在点xx处的值。若参量y是一矩阵,则以y的每一列和x配对,再分别计算由它们确定的函数在点xx处的值。则yy是一阶数为length(xx)*size(y,2)的矩阵。(2)pp=spline(x,y)返回由向量x与y确定的分段样条多项式的系数矩阵pp,它可用于命令ppval、unmkpp的计算。例6对离散地分布在y=exp(x)sin(x)函数曲线上的数据点进行样条插值计算:>>x=[024581212.817.219.920];y=exp(x).*sin(x);>>xx=0:.25:20;>>yy=spline(x,y,xx);>>plot(x,y,'o',xx,yy)命令7interpn功能n维数据插值(查表)格式(1)VI=interpn(X1,X2,,,Xn,V,Y1,Y2,?,Yn)%返回由参量X1,X2,…,Xn,V确定的n元函数V=V(X1,X2,…,Xn)在点(Y1,Y2,…,Yn)处的插值。参量Y1,Y2,…,Yn是同型的矩阵或向量。若Y1,Y2,…,Yn是向量,则可以是不同长度,不同方向(行或列)的向量。它们将通过命令ndgrid生成同型的矩阵,再作计算。若点(Y1,Y2,…,Yn)中有位于点(X1,X2,…,Xn)之外的点,则相应地返回特殊变量NaN。VI=interpn(V,Y1,Y2,?,Yn)%缺省地,X1=1:size(V,1),X2=1:size(V,2),…,Xn=1:size(V,n),再按上面的情形计算。VI=interpn(V,ntimes)%作ntimes次递归计算,在V的每两个元素之间插入它们的n维插值。这样,V的阶数将不断增加。interpn(V)等价于interpn(V,1)。VI=interpn(?,method)%用指定的算法method计算:‘linear’:线性插值(缺省算法);‘cubic’:三次插值;‘spline’:三次样条插值法;‘nearest’:最邻近插值算法。命令8meshgrid功能生成用于画三维图形的矩阵数据。格式[X,Y]=meshgrid(x,y)将由向量x,y(可以是不同方向的)指定的区域[min(x),max(x),min(y),max(y)]用直线x=x(i),y=y(j)(i=1,2,…,length(x),j=1,2,…,length(y))进行划分。这样,得到了length(x)*length(y)个点,这些点的横坐标用矩阵X表示,X的每个行向量与向量x相同;这些点的纵坐标用矩阵Y表示,Y的每个列向量与向量y相同。其中X,Y可用于计算二元函数z=f(x,y)与三维图形中xy平面矩形定义域的划分或曲面作图。[X,Y]=meshgrid(x)%等价于[X,Y]=meshgrid(x,x)。[X,Y,Z]=meshgrid(x,y,z)%生成三维阵列X,Y,Z,用于计算三元函数v=f(x,y,z)或三维容积图。例7[X,Y]=meshgrid(1:3,10:14)计算结果为:X=123123123123123Y=命令9ndgrid功能生成用于多维函数计算或多维插值用的阵列格式[X1,X2,…,Xn]=ndgrid(x1,x2,…,xn)%把通过向量x1,x2,x3…,xn指定的区域转换为数组x1,x2,x3,…,xn。这样,得到了length(x1)*length(x2)*…*length(xn)个点,这些点的第一维坐标用矩阵X1表示,X1的每个第一维向量与向量x1相同;这些点的第二维坐标用矩阵X2表示,X2的每个第二维向量与向量x2相同;如此等等。其中X1,X2,…,Xn可用于计算多元函数y=f(x1,x2,…,xn)以及多维插值命令用到的阵列。[X1,X2,…,Xn]=ndgrid(x)%等价于[X1,X2,…,Xn]=ndgrid(x,x,…,x)命令10table1功能一维查表格式Y=table1(TAB,X0)%返回用表格矩阵TAB中的行线性插值元素,对X0(TAB的第一列查找X0)进行线性插值得到的结果Y。矩阵TAB是第一列包含关键值,而其他列包含数据的矩阵。X0中的每一元素将相应地返回一线性插值行向量。矩阵TAB的第一列必须是单调的。例8>>tab=[(1:4)'hilb(4)]>>y=table1(tab,[12.33.64])查表结果为:>>tab=[(1:4)'hilb(4)]>>y=table1(tab,[12.33.64])

C. MATLAB编程 得出MATLAB人机交互界面,通过人机交互插入一组数据,用MATLAB拟合这组数

看看这个能不能帮到你:

Matlab中插值函数汇总和使用说明 :

MATLAB中的插值函数为interp1,其调用格式为:

yi= interp1(x,y,xi,'method')

其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,

MATLAB提供的插值方法有几种:

'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'cubic'立方插值.缺省时表示线性插值。

注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。

例如:在一 天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为

12,9,9,10,18 ,24,28,27,25,20,18,15,13,

推测中午12点(即13点)时的温度.

x=0:2:24;
y=[12 9 9 10 18 24 28 27 25 20 18
15 13];

a=13;
y1=interp1(x,y,a,'spline')

结果为: 27.8725

若要得到一天24小时的温度曲线,则:

xi=0:1/3600:24;

yi=interp1(x,y,xi, 'spline');

plot(x,y,'o' ,xi,yi)

命令1
interp1
功能
一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。
x:原始数据点
Y:原始数据点
xi:插值点
Yi:插值点
格式
(1)yi = interp1(x,Y,xi)
返回插值向量yi,每一元素对应于参量xi,同时由向量x
与Y 的内插值决定。参量x 指定数据Y 的点。
若Y
为一矩阵,则按Y 的每列计算。yi 是阶数为length(xi)*size(Y,2)的输出矩阵。
(2)yi = interp1(Y,xi)
假定x=1:N,其中N
为向量Y 的长度,或者为矩阵Y 的行数。
(3)yi = interp1(x,Y,xi,method)
用指定的算法计算插值:
’nearest’:最近邻点插值,直接完成计算;
’linear’:线性插值(缺省方式),直接完成计算;
’spline’:三次样条函数插值。对于该方法,命令interp1
调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline
用它们执行三次样条函数插值;
’pchip’:分段三次Hermite
插值。对于该方法,命令interp1 调用函数pchip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形;
’cubic’:与’pchip’操作相同;
’v5cubic’:在MATLAB
5.0 中的三次插值。
对于超出x
范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1
将对超出的分量执行外插值算法。
(4)yi = interp1(x,Y,xi,method,'extrap')
对于超出x
范围的xi 中的分量将执行特殊的外插值法extrap。
(5)yi = interp1(x,Y,xi,method,extrapval)
确定超出x
范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。
例1

>>x = 0:10; y =
x.*sin(x);
>>xx = 0:.25:10; yy =
interp1(x,y,xx);
>>plot(x,y,'kd',xx,yy)

例2

>> year =
1900:10:2010;
>> proct = [75.995
91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505
249.633 256.344 267.893
];
>>p1995 =
interp1(year,proct,1995)
>>x =
1900:1:2010;
>>y =
interp1(year,proct,x,'pchip');
>>plot(year,proct,'o',x,y)

插值结果为:

p1995 =
252.9885

命令2
interp2
功能
二维数据内插值(表格查找)
格式
(1)ZI
= interp2(X,Y,Z,XI,YI)
返回矩阵ZI,其元素包含对应于参量XI
与YI(可以是向量、或同型矩阵) 的元素, 即Zi(i,j) ←[Xi(i,j),yi(i,j)]。用户可以输入行向量和列向量Xi 与Yi,此时,输出向量Zi
与矩阵meshgrid(xi,yi)是同型的。同时取决于由输入矩阵X、Y 与Z 确定的二维函数Z=f(X,Y)。参量X 与Y
必须是单调的,且相同的划分格式,就像由命令meshgrid 生成的一样。若Xi与Yi 中有在X 与Y范围之外的点,则相应地返回nan(Not a
Number)。
(2)ZI
= interp2(Z,XI,YI)
缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一种情形进行计算。
(3)ZI
= interp2(Z,n)
作n
次递归计算,在Z 的每两个元素之间插入它们的二维插值,这样,Z 的阶数将不断增加。interp2(Z)等价于interp2(z,1)。
(4)ZI
= interp2(X,Y,Z,XI,YI,method)
用指定的算法method
计算二维插值:
’linear’:双线性插值算法(缺省算法);
’nearest’:最临近插值;
’spline’:三次样条插值;
’cubic’:双三次插值。

例3:

>>[X,Y] =
meshgrid(-3:.25:3);
>>Z = peaks(X,Y);
>>[XI,YI] =
meshgrid(-3:.125:3);
>>ZZ =
interp2(X,Y,Z,XI,YI);
>>surfl(X,Y,Z);hold
on;
>>surfl(XI,YI,ZZ+15)
>>axis([-3 3 -3 3 -5
20]);shading flat
>>hold
off

例4:

>>years =
1950:10:1990;
>>service =
10:10:30;
>>wage = [150.697
199.592 187.625
179.323 195.072 250.287
203.212 179.092 322.767
226.505 153.706 426.730
249.633 120.281
598.243];
>>w =
interp2(service,years,wage,15,1975)

插值结果为:

w =
190.6288

命令3
interp3
功能
三维数据插值(查表)
格式
(1)VI
= interp3(X,Y,Z,V,XI,YI,ZI)
找出由参量X,Y,Z决定的三元函数V=V(X,Y,Z)在点(XI,YI,ZI)的值。参量XI,YI,ZI
是同型阵列或向量。若向量参量XI,YI,ZI 是不同长度,不同方向(行或列)的向量,这时输出参量VI 与Y1,Y2,Y3 为同型矩阵。其中Y1,Y2,Y3
为用命令meshgrid(XI,YI,ZI)生成的同型阵列。若插值点(XI,YI,ZI)中有位于点(X,Y,Z)之外的点,则相应地返回特殊变量值NaN。
(2)VI
= interp3(V,XI,YI,ZI)
缺省地,
X=1:N ,Y=1:M, Z=1:P ,其中,[M,N,P]=size(V),再按上面的情形计算。
(3)VI
= interp3(V,n)
作n
次递归计算,在V 的每两个元素之间插入它们的三维插值。这样,V 的阶数将不断增加。interp3(V)等价于interp3(V,1)。
(4)VI
= interp3(......,method) %用指定的算法method 作插值计算:
‘linear’:线性插值(缺省算法);
‘cubic’:三次插值;
‘spline’:三次样条插值;
‘nearest’:最邻近插值。
说明
在所有的算法中,都要求X,Y,Z 是单调且有相同的格点形式。当X,Y,Z
是等距且单调时,用算法’*linear’,’*cubic’,’*nearest’,可得到快速插值。

例5

>>[x,y,z,v] =
flow(20);
>>[xx,yy,zz] =
meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);
>>vv =
interp3(x,y,z,v,xx,yy,zz);
>>slice(xx,yy,zz,vv,[6
9.5],[1 2],[-2 .2]); shading interp;colormap
cool

命令4
interpft
功能
用快速Fourier 算法作一维插值
格式
(1)y
= interpft(x,n)
返回包含周期函数x
在重采样的n 个等距的点的插值y。若length(x)=m,且x 有采样间隔dx,则新的y 的采样间隔dy=dx*m/n。注意的是必须n≥m。若x
为一矩阵,则按x 的列进行计算。返回的矩阵y 有与x 相同的列数,但有n 行。
(2)y
= interpft(x,n,dim)
沿着指定的方向dim
进行计算

命令5
griddata
功能
数据格点
格式
(1)ZI
= griddata(x,y,z,XI,YI)
用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,z。griddata
将返回曲面z 在点(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid
生成的一样)。XI 可以是一行向量,这时XI 指定一有常数列向量的矩阵。类似地,YI 可以是一列向量,它指定一有常数行向量的矩阵。
(2)[XI,YI,ZI]
= griddata(x,y,z,xi,yi)
返回的矩阵ZI
含义同上,同时,返回的矩阵XI,YI 是由行向量xi 与列向量yi 用命令meshgrid 生成的。
(3)[XI,YI,ZI]
= griddata(.......,method)
用指定的算法method
计算:
‘linear’:基于三角形的线性插值(缺省算法);
‘cubic’:
基于三角形的三次插值;
‘nearest’:最邻近插值法;
‘v4’:MATLAB
4 中的griddata 算法。

命令6
spline
功能
三次样条数据插值
格式
(1)yy
= spline(x,y,xx)
对于给定的离散的测量数据x,y(称为断点),要寻找一个三项多项式y
= p(x) ,以逼近每对数据(x,y)点间的曲线。过两点(xi, yi) 和(xi+1, yi+1)
只能确定一条直线,而通过一点的三次多项式曲线有无穷多条。为使通过中间断点的三次多项式曲线具有唯一性,要增加两个条件(因为三次多项式有4
个系数):
a.三次多项式在点(xi,
yi) 处有: p¢i(xi) = p¢i(xi) ;
b.三次多项式在点(xi+1,
yi+1) 处有: p¢i(xi+1) = pi¢(xi+1) ;
c.p(x)在点(xi,
yi) 处的斜率是连续的(为了使三次多项式具有良好的解析性,加上的条件);
d.p(x)在点(xi,
yi) 处的曲率是连续的;
对于第一个和最后一个多项式,人为地规定如下条件:
①.
p¢1¢(x) = p¢2¢(x)
②.
p¢n¢(x) = p¢n¢-1(x)
上述两个条件称为非结点(not-a-knot)条件。综合上述内容,可知对数据拟合的三次样条函数p(x)是一个分段的三次多项式:
ï
ïî
ï
ïí
ì
£
£
£
£
£
£
=
n
n n+1
2
2 3
1
1 2
p
(x) x x x
p
(x) x x x
p
(x) x x x
p(x)
L
L L L
其中每段pi(x)
都是三次多项式。
该命令用三次样条插值计算出由向量x
与y 确定的一元函数y=f(x)在点xx 处的值。若参量y 是一矩阵,则以y 的每一列和x 配对,再分别计算由它们确定的函数在点xx 处的值。则yy
是一阶数为length(xx)*size(y,2)的矩阵。
(2)pp
= spline(x,y)
返回由向量x
与y 确定的分段样条多项式的系数矩阵pp,它可用于命令ppval、unmkpp 的计算。

例6
对离散地分布在y=exp(x)sin(x)函数曲线上的数据点进行样条插值计算:

>>x = [0 2 4 5 8 12 12.8
17.2 19.9 20]; y = exp(x).*sin(x);
>>xx = 0:.25:20;
>>yy =
spline(x,y,xx);
>>plot(x,y,'o',xx,yy)

命令7
interpn
功能
n 维数据插值(查表)
格式
(1)VI
= interpn(X1,X2,,,Xn,V,Y1,Y2,?,Yn) %返回由参量X1,X2,…,Xn,V 确定的n
元函数V=V(X1,X2,…,Xn)在点(Y1,Y2,…,Yn)处的插值。参量Y1,Y2,…,Yn 是同型的矩阵或向量。若Y1,Y2,…,Yn
是向量,则可以
是不同长度,不同方向(行或列)的向量。它们将通过命令ndgrid生成同型的矩阵,
再作计算。若点(Y1,Y2,…,Yn) 中有位于点(X1,X2,…,Xn)之外的点,则相应地返回特殊变量NaN。
VI
= interpn(V,Y1,Y2,?,Yn) %缺省地,X1=1:size(V,1),X2=1:size(V,2),… ,
Xn=1:size(V,n),再按上面的情形计算。
VI
= interpn(V,ntimes) %作ntimes 次递归计算,在V 的每两个元素之间插入它们的n 维插值。这样,V
的阶数将不断增加。interpn(V)
等价于interpn(V,
1)。
VI
= interpn(?,method) %用指定的算法method 计算:
‘linear’:线性插值(缺省算法);
‘cubic’:三次插值;
‘spline’:三次样条插值法;
‘nearest’:最邻近插值算法。

命令8
meshgrid
功能
生成用于画三维图形的矩阵数据。
格式
[X,Y] = meshgrid(x,y) 将由向量x,y(可以是不同方向的)指定的区域[min(x),max(x) , min(y) , max(y)]
用直线x=x(i),y=y(j) ( i=1,2,…,length(x)
,j=1,2,…,length(y))进行划分。这样,得到了length(x)*length(y)个点,
这些点的横坐标用矩阵X
表示,X 的每个行向量与向量x 相同;这些点的纵坐标用矩阵Y 表示,Y 的每个列向量与向量y 相同。其中X,Y可用于计算二元函数z=f(x,y)与三维图形中xy
平面矩形定义域的划分或
曲面作图。
[X,Y]
= meshgrid(x) %等价于[X,Y]=meshgrid(x,x)。
[X,Y,Z]
= meshgrid(x,y,z) %生成三维阵列X,Y,Z,用于计算三元函数v=f(x,y,z)或三维容积图。

例7

[X,Y] =
meshgrid(1:3,10:14)
计算结果为:

X =
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y =
10 10 10
11 11 11
12 12 12
13 13 13
14 14
14

命令9
ndgrid
功能
生成用于多维函数计算或多维插值用的阵列
格式
[X1,X2,…,Xn] = ndgrid(x1,x2,…,xn) %把通过向量x1,x2,x3…,xn 指定的区域转换为数组x1,x2,x3,…,xn
。这样, 得到了 length(x1)*length(x2)*…*length(xn)个点,这些点的第一维坐标用矩阵X1 表
示,X1
的每个第一维向量与向量x1 相同;这些点的第二维坐标用矩阵X2 表示,X2 的每个第二维向量与向量x2 相同;如此等等。
其中X1,X2,…,Xn
可用于计算多元函数y=f(x1,x2,…,xn)以及多维插值命令用到的阵列。
[X1,X2,…,Xn]
= ndgrid(x) %等价于[X1,X2,…,Xn] = ndgrid(x,x,…,x)

命令10
table1
功能
一维查表
格式
Y = table1(TAB,X0) %返回用表格矩阵TAB 中的行线性插值元素,对X0(TAB的第一列查找X0)进行线性插值得到的结果Y。矩阵TAB
是第一列包含
关键值,而其他列包含数据的矩阵。X0
中的每一元素将相应地返回一线性插值行向量。矩阵TAB 的第一列必须是单调的。

例8

>>tab = [(1:4)'
hilb(4)]
>>y = table1(tab,[1 2.3
3.6 4])
查表结果为:

>>tab = [(1:4)'
hilb(4)]
>>y = table1(tab,[1 2.3
3.6 4])

D. matlab中interp1函数是什么意思啊

interp1函数:一维数据插值函数

一维数据插值。该函数对数据点之间计算内插值,它找出一元函数f(x)在中间点的数值,其中函数表达式由所给数据决定。
yi=interp1(x,Y,xi):返回插值向量yi,每一元素对应于参量xi,同时由向量X与Y的内插值决定。参量x 指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。
yi=interp1(Y,xi):假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。
yi=interp1(x,Y,xi,method):用指定的算法计算插值。nearest为最近邻点插值,直接完成计算;linear为线性插值(默认方式),直接完成计算;spline为三次样条函数插值。
yi=interp1(x,Y,xi,method,'extrap'):对于超出x范围的xi中的分量将执行特殊的外插值法extrap。
yi=interp1(x,Y,xi,method,extrapval):确定超出x范围的xi中的分量的外插值extrapval,其值通常取NaN或0。

E. 求高手帮我翻译下这段matlab程序,也求讲解,在线等,谢谢~~

例如:使用文本界面

这里是一个例子,使用文本界面。图形界面足够的用途,所以你不可能使用文本界面。然而,看一看,现有的算法列表,以下。

##加载数据集

>>负荷数据/云

>>谁

名称的大小字节级

distribution_parameters欧盘1464结构数组

模式2x500080000双阵列

目标1x500040000双阵列

总计为15076个元素使用121464个字节

数据集存储在变量中,模式和目标。

##选择试验方法,训练数据和测试数据

%使画根据错误的选择方法

>>=长度(目标);

%=20;

[test_indices,train_indices]=make_a_draw(楼(%/100 *我),我);

train_patterns=模式(train_indices:,);

train_targets=目标(:,train_indices);

test_patterns=模式(test_indices:,);

test_targets=目标(:,test_indices);

##选择分类器。找出参数使用帮助<分类器名称>

>>帮助nearest_neighbor

利用最近邻算法分类

输入:

train_patterns-训练模式

train_targets-训练目标

test_patterns-测试模式

最近邻-邻居数

输出

test_targets-预测目标

##建立分类和分类数据

>>test_out=nearest_neighbor(train_patterns,train_targets,test_patterns,3);

##估计误差

>>=平均(test_targets~=test_out)

误差=

0.1313

F. 如何对图像做分类器训练matlab代码

对图像做分类器训练要建立视觉词袋来进行图像分类。该过程生成用来表示图像视觉词的直方图,通过这些直方图来训练图像分类器。下面的步骤描述如何建立图像集,建立视觉词袋,以及训练和运用图像分类器。
第一步:建立图像类别集合
将图像分割成训练子集和测试子集。利用imageDatastore函数来存储训练分类器的图像。可以利用splitEachLabel函数将图像分割成训练数据和测试数据。
读取类别图像和创建图像子集
setDir = fullfile(toolboxdir('vision'),'visiondata','imageSets');
imds = imageDatastore(setDir,'IncludeSubfolders',true,'LabelSource','foldernames');
分割图集成训练和测试子集。下例中,30%作为训练数据,余下的作为测试数据。
[trainingSet,testSet] = splitEachLabel(imds,0.3,'randomize');
第二步:建立特征词袋
通过从每个类别的有代表性的图像中提取特征描述符,创建视觉词汇表或特征包。
通过在训练集合中提取出的特征描述符上利用k-means聚类算法,bagOfFeatures对象定义特征,视觉词汇。该算法迭代地将描述符分成k个互斥簇。由此产生的簇是紧密的,并具有相似的特性。每个集群中心代表一个特征,或一个可视词。可以基于特征检测器提取特征,也可以定义一个网格来提取特征描述符。网格方法可能丢失细节信息。因此,对不包含明显特征的图像使用网格,例如海滩等景物的图像。使用Speed up robust features(或SURF)检测器提供更大的尺度不变性。默认情况下,该算法运行“网格”方法。
该算法工作流对图像进行整体分析。图像必须有适当的标签来描述它们所代表的类。例如,一组汽车图像可以被标记为汽车。工作流不依赖于空间信息,也不依赖于标记图像中的特定对象。视觉词袋技术依赖于非局部化的检测技术。
第三步:通过视觉词袋训练图像分类器
trainImageCategoryClassifier函数返回一个图像分类器。该方法使用基于2分类支持向量机(SVM)的error-correcting output codes(ECOC)框架来训练一个多分类器。
该方法利用bagOfFeatures对象返回的视觉词袋将图像集中的图像编码成视觉词直方图。然后将视觉词直方图作为训练分类器的正负样本。
1、将训练集中的每幅图像利用bagOfFeature的encode方法进行编码。该函数检测和提取图像中的特征,然后利用最近邻算法构造每个图像的特征直方图。函数将描述符逼近聚类中心来增加直方图各bin的数值。直方图的长度取决于bagOfFeatures对象构造的出来的视觉词的数量。最终将直方图作为图像的特征向量。
2、对训练集中的每幅图像重复步骤1,建立训练数据
3、评价分类器。在测试图像集上使用imagecategoryclassifier的evaluate方法测试分类器。输出混淆矩阵可以分析预测结果。理想的分类结果是对角线上包含一个标准矩阵。不正确的分类导致出现分数值。
第四步:对图像或图像集进行分类
最后使用imageCategoryClassifier 的predeict方法对新图像进行分类来确定其类型。

G. MATLAB中三种差值法怎样编程

http://wenku..com/view/4b8beb2dcfc789eb172dc896.html?st=1

http://wenku..com/view/49a35f050740be1e650e9aac.html?st=1

http://wenku..com/view/97931e353968011ca30091ac.html

http://wenku..com/view/702346f8910ef12d2af9e7ad.html

H. 【matlab】csape 和interp1有什么相同和区别

csape和interp1都是插值函数。
csape可以选择样条的边界条件,interp1无法使用边界条件;
csape只是Cubic spline插值,interp1可以选择几种不同的插值方法。

csape函数的用法如下:
pp = csape(x,y,conds,valconds)
其中(x,y)为数据向量,conds表示变界类型, valconds表示边界值。
边界类型(conds)可为:
'complete',给定边界一阶导数.
'not-a-knot',非扭结条件,不用给边界值.
'periodic',周期性边界条件,不用给边界值.
'second',给定边界二阶导数.
'variational',自然样条(边界二阶导数为0)
边界类型(valconds)可为:
'complete',给定边界一阶导数.
'not-a-knot',非扭结条件,不用给边界值.
'periodic',周期性边界条件,不用给边界值.
'second',给定边界二阶导数.
'variational',自然样条(边界二阶导数为0)

interp1函数的用法如下:
yi=interp1(x,Y,xi):返回插值向量yi,每一元素对应于参量xi,同时由向量X与Y的内插值决定。参量x 指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。
yi=interp1(Y,xi):假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。
yi=interp1(x,Y,xi,method):用指定的算法计算插值。nearest为最近邻点插值,直接完成计算;linear为线性插值(默认方式),直接完成计算;spline为三次样条函数插值。
yi=interp1(x,Y,xi,method,'extrap'):对于超出x范围的xi中的分量将执行特殊的外插值法extrap。
yi=interp1(x,Y,xi,method,extrapval):确定超出x范围的xi中的分量的外插值extrapval,其值通常取NaN或0。

I. 急求最近邻算法的半监督学习算法对vehicle数据分类的matlab程序

  • 嗯嗯嗯

热点内容
存储设备报价 发布:2024-05-08 02:22:01 浏览:552
定步长的算法 发布:2024-05-08 02:16:18 浏览:108
怎么使用pe口袋服务器 发布:2024-05-08 02:02:18 浏览:470
xml数据库c 发布:2024-05-08 02:01:46 浏览:455
仿知乎android 发布:2024-05-08 01:56:00 浏览:903
mysql编译参数 发布:2024-05-08 01:53:46 浏览:192
怎么看台式电脑配置生产日期 发布:2024-05-08 01:32:26 浏览:459
java基础培训学校 发布:2024-05-08 01:30:44 浏览:466
简单辅助火眼打码如何配置 发布:2024-05-08 01:30:44 浏览:902
我的世界网易版服务器游戏 发布:2024-05-08 01:10:33 浏览:41