MATLAB: I need to have output of qfunc as a handle function

hanldefqfunct

all,
I need to have output of qfunc as a handle function but I face following error:
error: """Error using qfunc
The argument of the Q function must be a real array."""
so does anybody know how can I use handle function in qfunction??????
myf = @(ebn0)BER32APSK(c,M,ebn0)-p;
and inside of BER32APSK I would have:
fsum = fsum + qfunc(sqrt(((d2)*(log2(M))*ebn0)/2));

Best Answer

One of d2 or log2(M) or ebn0 are not real-valued.
In particular check for the possibility that M is negative, as log of a negative number would give imaginary values.