早教吧作业答案频道 -->其他-->
用matlab编写一个高斯核密度函数上面是高斯核密度函数的形式,h为窗宽,x1,x2,.xn是样本的点,用matlab编写的程序如下:function c=yanyan(x,y,z)n=length(y) zz=vectorize(sum(exp(-(x-y)^2)/(2*z^2)))yux=n*z*(2*pi)^0.5c=zz/
题目详情
用matlab编写一个高斯核密度函数
上面是高斯核密度函数的形式,h为窗宽,x1,x2,.xn是样本的点,用matlab编写的程序如下:
function c=yanyan(x,y,z)
n=length(y)
zz=vectorize(sum(exp(-(x-y)^2)/(2*z^2)))
yux=n*z*(2*pi)^0.5
c=zz/yux
end
x----未知数
y----x1,x2.xn这个向量
z-----窗宽
zz是指
这些相加
yux是指
,但是matlab现实too many input,
上面是高斯核密度函数的形式,h为窗宽,x1,x2,.xn是样本的点,用matlab编写的程序如下:
function c=yanyan(x,y,z)
n=length(y)
zz=vectorize(sum(exp(-(x-y)^2)/(2*z^2)))
yux=n*z*(2*pi)^0.5
c=zz/yux
end
x----未知数
y----x1,x2.xn这个向量
z-----窗宽
zz是指
这些相加
yux是指
,但是matlab现实too many input,
▼优质解答
答案和解析
1、你是怎样调用的?照理说,如果是正常的调用,例如
yanyan(1.5,1:10,.1)
应该会出现Matrix must be square的提示,而不会是too many input.
2、vectorize不是这样用的,它只能把一个char类型的表达式或sym、inline对象给替换成点运算,而对于一个double类型的数值,会强制转换为char类型,可能导致丢失精度(因为char的表示范围有限,即使在中文环境下,范围也只是0-65535,而且只能是整数).
3、表达式写错了,把2h^2给放到指数函数外面了,也就是说
exp(-(x-y)^2)/(2*z^2)
应为
exp(-(x-y)^2/(2*z^2))
4、可以简单修改如下:
function c=yanyan(x,y,z)
n=length(y);
zz=sum(exp(-(x-y).^2/(2*z^2)));
yux=n*z*(2*pi)^0.5;
c=zz/yux;
但这样的写法不支持x为向量的情况,可以考虑改成
function c=yanyan(x,y,z)
n=length(y);
yux=n*z*(2*pi)^0.5;
c=arrayfun(@(x)sum(exp(-(x-y).^2/(2*z^2))),x)/yux;
yanyan(1.5,1:10,.1)
应该会出现Matrix must be square的提示,而不会是too many input.
2、vectorize不是这样用的,它只能把一个char类型的表达式或sym、inline对象给替换成点运算,而对于一个double类型的数值,会强制转换为char类型,可能导致丢失精度(因为char的表示范围有限,即使在中文环境下,范围也只是0-65535,而且只能是整数).
3、表达式写错了,把2h^2给放到指数函数外面了,也就是说
exp(-(x-y)^2)/(2*z^2)
应为
exp(-(x-y)^2/(2*z^2))
4、可以简单修改如下:
function c=yanyan(x,y,z)
n=length(y);
zz=sum(exp(-(x-y).^2/(2*z^2)));
yux=n*z*(2*pi)^0.5;
c=zz/yux;
但这样的写法不支持x为向量的情况,可以考虑改成
function c=yanyan(x,y,z)
n=length(y);
yux=n*z*(2*pi)^0.5;
c=arrayfun(@(x)sum(exp(-(x-y).^2/(2*z^2))),x)/yux;
看了 用matlab编写一个高斯核...的网友还看了以下:
某元素R的核内含有N个中子,R的质量数为A,在其与氢化合时,R呈-n价,则WgR的气态氢化物中所含 2020-05-13 …
某元素的阴离子Rn-,核外共有m个电子,又知R的质量数为A,则该元素原子里的中子数为()A.A-m 2020-05-13 …
某元素的一种核素X的质量数为A,含N个中子,它与2H原子组成2HmX分子.在ag2HmX中所含质子 2020-05-13 …
6、X元素原子的质量数为m,核内中子数为n,则WgX2+离子含有的电子的物质的量约为A、(m+n+ 2020-06-06 …
设n代表原子核外能层序数,m代表每个能层的能级数,q代表每个能层中的电子总数,则目前已知的元素的原 2020-06-22 …
A(n,m)是数学排列的一个算数表达式,也可表示为P(n,m)一般记作(如图所示),但是由于单行不 2020-07-06 …
当m=时,x^2-(m-1)x+25是一个完全平方式把(x^2+8x+15)除以(x+3)所得的商 2020-07-30 …
分解因式跪求解答的问题6(m-n)^3-12(n-m)^2别急的写答案请看下面6(m-n)^3-1 2020-07-30 …
某元素离子Am-核内有n个中子,核外有x个电子.该原子的质量数是()A.x-m+nB.x+m+nC. 2020-11-11 …
X、Y、Z、L、M、N是六种原子序数依次增大的前四周期元素.X、Y、Z、L是组成蛋白质的基础元素,M 2021-02-01 …