function handle的使用
我最近碰到一个问题不能解决,希望大家帮忙看下!问题如下:
function ST=teststat(X,h,coef)% X是100*1随机数,h=1.1,coef=-0.9
T=100;
re=X(2:T)-coef*X(1:(T-1));
syms x,
for t=1:(T-1)
r(t)=(x-X(t))/h;
KH(t)=exp(-r(t)^2)/sqrt(2*pi)/h;
S(t)=KH(t)*re(t);
end
S=vpa(simple(S));
MEAN=vpa(mean(S))
g=vpa(simple(MEAN^2))
ME = @(x) g
ST=simprl(ME,-5,5,500)
最后一行调用了另一个M文件,我试了下ME 只能是显示表达式才行,ME是function handle, 请问如何得到显示表达式或如何解决上述问题?
function s=simprl(f,a,b,M)
h=(b-a)/(2*M);s1=0;s2=0;
% f = @(x) x.^2;
for i=1:M
x=a+h*(2*i-1);
s1=s1+feval(f,x);
end
for i=1:(M-1)
x=a+h*2*i;
s2=s2+feval(f,x);
end
s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;
其实这个问题就是如何把符号函数转化为函数句柄,请大家帮忙看下
[ 本帖最后由 ChaChing 于 2009-7-20 13:19 编辑 ] 如果你的MATLAB是2009a的话help str2func函数
否则给你个例子
syms x
y = x^2+log(sqrt(x));
fun = eval(['@(x)' char(y)])
回复 沙发 rocwoods 的帖子
非常感谢,我试了下,可以计算结果,再次表示感谢
页:
[1]