原帖由 realhappy 于 2006-10-18 21:32 发表
首先非常eight的热心帮忙,这程序有几点不懂:
第一:f = @(a,b,c) (a+b+c);是预先定义子函数吗?
第二:function y = myTimes(x,f,varargins)中的varargins是不是指后面所有的参数,因为在我那个程序里后面还 ...
在你的例子中,我想应该这样:
假设evalFN是函数名,startPop,opts,termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps是它的形式参数,evalOps也是函数名,sol,model,Xtra, Ytra, Xval, Yval,estfct, trainfct, simfct是它的形式参数,则在galssvm中这样写:
function [x,endPop,bPop,traceInfo] = galssvm(bounds,evalFN,varargins1,evalOps,varargins2)
startPop = varargins1{1};
opts = varargins1{2};
....
evalFN(startPop,opts,...);
sol= varargins2{1};
model= varargins2{2};
....
evalOps(sol,model,...);
调用的时候,用galssvm(bounds,evalFN,{startPop,opts,...},evalOps,{sol,model,...}),至于参数的类型,应该没有限制。我暂时只想到这样的笨方法,不知道是否有更好的处理方法,呵呵,希望能帮到你吧。
[ 本帖最后由 eight 于 2006-10-18 22:36 编辑 ] |