作业帮 > 综合 > 作业

matlab运行出错Error using ==> inline.subsref at 14 Not enough in

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/17 15:20:37
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 in
下面这句:
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这个名字会被和同名函数混淆.