MATLAB Answers

0

how to resolve this "not enough input arguments" from the code shown below

Asked by Sai Dinesh Kancharana on 4 Sep 2019
Latest activity Commented on by Jan
on 4 Sep 2019
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 Comment

Please post code as text, not as screenshot. Then it is much easier to re-use it to create an answer.

Sign in to comment.

Tags

Products


Release

R2016b

1 Answer

Answer by Jan
on 4 Sep 2019
Edited by Jan
on 4 Sep 2019

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 Comments

Sign in to comment.