realhappy 发表于 2006-8-4 15:17

帮忙看看eval和feval的用法

这个程序中的eval和feval一些用法不好理解,请高手解释一下。
function prediction = predict(model,Xt,n, simfct, args)
if size(Xt,2)~=1 & size(Xt,1)~=1,
error('prediction only implemented for the one-dimensional autonomous case');
end
eval('model = initlssvm(model{:});',' ');
eval('xdim = model.x_dim;','xdim = max(size(Xt)); ');
eval('n; alle=0;','n=length(Xt)-xdim; alle=1;');
Xt = Xt(1:xdim);
Xt = reshape(Xt,length(Xt),1);
eval('simfct;','simfct=''simlssvm'';');
eval('model = trainlssvm(model);');

xdelays = length(Xt);
prediction = zeros(xdelays+n,1);
prediction(1:xdelays) = Xt;


% closed loop
eval('for i=1:n,prediction(xdelays+i) = feval(simfct,model, prediction(i-1+(1:xdelays))'',args); end',...
   'for i=1:n,prediction(xdelays+i) = feval(simfct,model,prediction(i-1+(1:xdelays))''); end');

if ~alle,
prediction = prediction(xdelays+1:end);
end

cdwxg 发表于 2006-8-4 17:20

原帖由 realhappy 于 2006-8-4 15:17 发表
这个程序中的eval和feval一些用法不好理解,请高手解释一下。
function prediction = predict(model,Xt,n, simfct, args)
if size(Xt,2)~=1 & size(Xt,1)~=1,
error('prediction only implemented for t ...


doc两个命令看下不就行了,我现在电脑没matlab
看不了,呵呵,自己看下呢?

yejet 发表于 2006-8-4 17:27

看帖子http://forum.vibunion.com/forum/viewthread.php?tid=12178

realhappy 发表于 2006-8-4 18:31

谢谢楼上两位兄台的答复,我也看了帮助,用百度查了,但是程序里两句还是有些不懂。
eval('xdim = model.x_dim;','xdim = max(size(Xt)); ');是执行前一句还是后一句或是两句都执行。
eval('for i=1:n,prediction(xdelays+i) = feval(simfct,model, prediction(i-1+(1:xdelays))'',args); end',...
   'for i=1:n,prediction(xdelays+i) = feval(simfct,model,prediction(i-1+(1:xdelays))''); end');
这句也是一样,是执行前一句还是后一句或是两句都执行。
feval(simfct,model,prediction(i-1+(1:xdelays))''); end');是有三个语句simfct,model,prediction,是三个都执行吗。

twb0624 发表于 2012-7-19 08:16

eval是将字符串作为命令输出吧
页: [1]
查看完整版本: 帮忙看看eval和feval的用法