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
Screenshot (11).png
Screenshot (10).png

回答(1 个)

Jan
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))

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

产品


版本

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by