matlab运行出错Error using ==> inline.subsref at 14 Not enough inputs to inline function.怎么修改?程序如下n=10000;x(1)=0;str='exp(-(x-mu)^2/2)';snrpdf=inline(str,'x','mu');cauchypdf=inline('1/(1+x^2)');for i=2:ny=x(i-1)+randn(1);alhpa=min(

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 11:09:32
matlab运行出错Error using ==> inline.subsref at 14 Not enough inputs to inline function.怎么修改?程序如下n=10000;x(1)=0;str='exp(-(x-mu)^2/2)';snrpdf=inline(str,'x','mu');cauchypdf=inline('1/(1+x^2)');for i=2:ny=x(i-1)+randn(1);alhpa=min(

matlab运行出错Error using ==> inline.subsref at 14 Not enough inputs to inline function.怎么修改?程序如下n=10000;x(1)=0;str='exp(-(x-mu)^2/2)';snrpdf=inline(str,'x','mu');cauchypdf=inline('1/(1+x^2)');for i=2:ny=x(i-1)+randn(1);alhpa=min(
matlab运行出错Error using ==> inline.subsref at 14 Not enough inputs to inline function.怎么修改?
程序如下
n=10000;
x(1)=0;
str='exp(-(x-mu)^2/2)';
snrpdf=inline(str,'x','mu');
cauchypdf=inline('1/(1+x^2)');
for i=2:n
y=x(i-1)+randn(1);
alhpa=min(1,snrpdf(y)/snrpdf(x(i-1))*snrpdf(x(i-1),y)/snrpdf(y,x(i-1)));
u=rand;
if u

matlab运行出错Error using ==> inline.subsref at 14 Not enough inputs to inline function.怎么修改?程序如下n=10000;x(1)=0;str='exp(-(x-mu)^2/2)';snrpdf=inline(str,'x','mu');cauchypdf=inline('1/(1+x^2)');for i=2:ny=x(i-1)+randn(1);alhpa=min(
下面这句:
alhpa=min(1,snrpdf(y)/snrpdf(x(i-1))*snrpdf(x(i-1),y)/snrpdf(y,x(i-1)));
里面调用了4次snrpdf,前两处都只有一个输入参数,而该函数的定义是有两个输入参数的.怀疑前两个是不是应为cauchypdf——前面定义了这个函数但没有用到.如果确定是snrpdf,那么需要按照函数的定义提供第二个参数.
 
另外,变量名最好不要用alhpa,在某些版本的MATLAB,alhpa这个名字会被和同名函数混淆.