It looks like you are passing a vector to myfunc and it returns a scalar. Now you want to adjust the vector such that the scalar is maximum.
I think rather than looking for finding the gradient you can use the fmincon function. First, you need to convert the maximization problem into a minimization problem as described here. Then you can pass the function handle of the myfunc to the fmincon function along with an initial guess of the vector b.