Can anyone please debug the error

2 views (last 30 days)
My function is as follows
function F = myobjfun(x,y) syms i x y k F = symsum(((y(3).*x(i).*log(1+x(i))/symsum(x(k),k,0,9)-(y(2).*x(i))),i,0,9); end
when i am passing x=[1,2,....10], y=[0.5,0.5]
I am getting the following error
Error using mupadmex Error in MuPAD command: Index exceeds matrix dimensions.
Error in sym/subsref (line 1580) B = mupadmex('symobj::subsref',A.s,inds{:});
Error in myobjfun (line 4) F = symsum(((y(3).*x(i).*log(1+x(i)))-(y(2).*x(i))),i,0,9);

Accepted Answer

Pedro Villena
Pedro Villena on 20 May 2014
Edited: Pedro Villena on 20 May 2014
You had made some errors:
  • symsum is a symbolic command for symbolic variables.
symsum(x(k),k,0,9) -> sum(x)
  • in matlab, don't exist the zero index, the first index is one.
  • you had miss one parenthesis some where.
  • the argument y, only have 2 elements.
y(3) -> y(1)
  • i think that you're confusing matlab script with another symbolic language like mathematica, cause you don't need symbolic toolbox.
function F = myobjfun(x,y)
n = numel(x);
i = 1;
F = y(1).*x(i).*log(1+x(i))/sum(x) - y(2).*x(i);
for i=2:n,
F = F + y(1).*x(i).*log(1+x(i))/sum(x) - y(2).*x(i);
end

More Answers (1)

shimels gbre ab abebe
shimels gbre ab abebe on 20 Jun 2021
Can any one please help me.How can I debg it...?
Num_of_user=round(1200/t*gaussm(k,t/4,t/2));

Community Treasure Hunt

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

Start Hunting!