how to resolve this "not enough input arguments" from the code shown below
1 次查看(过去 30 天)
显示 更早的评论
here objFun=@(mag)summ;
i.e it summ is given as a function handle to objFun, and that objFun is called from the PSO.m file.
The X(:,idx) is a column vector, that is being passed.
I tried debugging it, but i have found that the argument is not being passed, and hence the error "not enough arguments".
In noth the screenshots the part of the errors are marked, please make a not of it.
Any help or suggestions would be greatly appreciated.
Thanks and regard,
K.Sai Dinesh
1 个评论
Jan
2019-9-4
Please post code as text, not as screenshot. Then it is much easier to re-use it to create an answer.
回答(1 个)
Jan
2019-9-4
编辑:Jan
2019-9-4
objFun=@(mag)summ
Now calling objFun calls summ without input arguments. I assume, you mean:
objFun = @summ
which is a more efficient version than:
objFun = @(mag) summ(mag)
The code looks strange:
for i = magt(:,1)
if(magt(i)>=0.7)
...
end
end
Now the contents of magt is used as index of the same vector. Are you sure that this is wanted? This looks better:
for i = 1:numel(magt)
...
end
You can omit the loop also:
m = (magt > 0.7);
err1 = sum(abs(magt - 1.004 * m - 0.001))
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!