你有一个文件
objfun2.m
第一个可执行的字不是
函数
或
classdef
。在MATLAB中,这些文件被称为“脚本文件”。脚本文件不能被传递参数,只能由自己。
你想调用objfun2作为遗传算法目标函数()调用,但ga()只能接受处理函数,不处理脚本。
错误在objfun2(12)行
据Nvar铬= ga (@objfun2,[],[],[],[],磅,乌兰巴托,[],选项);
更仔细的查看错误消息:它表明我们
内部
objfun2内objfun2已经,你正试图说objfun2是一个函数。你已经执行objfun2但你告诉ga(),它需要执行objfun2产生答案。
它不是
总是
一个错误有一个函数调用它自己,但你必须小心等节目的一个函数。
%的函数
但你不是在任何函数!
这条线强烈暗示,你把现有的函数命名
objfun2.m
删除和编辑它
函数objfun2
声明,然后添加到行打算ga()调用objfun2。
你应该创建一个
单独的
文件,如optimize_objfun2。米有…嗯,可能到
disp (ObjVal);
行我怀疑……现有objfun2离开。m不变(除非事实证明,它有错误,需要固定的。)