MATLAB: Trying to use anonymous function but it returns too many input arguments

MATLABmatlab function

I separately wrote the following function
function [func] = fwet_1(~)
func = @(gm1,Sc,Scmax) (Sc/Scmax)^gm1;
end
and when I to run
fwet_1(0.23,1,3)
it returns
Error using fwet_1
Too many input arguments.
any idea?

Best Answer

I just got answer form stackoverflow answer by @Mad Physicist
fwet_1 takes up to 1 input. Your syntax is calling fwet_1 with three inputs, not the function handle it returns.
You can call the function handle like this:
x = fwet_1
x(0.23,1,3)
If your function really does nothing but return a function handle, skip the function entirely, or remove the unnecessary level of nesting. E.g.:
function [val] = fwet_1(gm1,Sc,Scmax)
val = (Sc/Scmax)^gm1;
end
If you need a function handle, just use @fwet_1. There's no difference between a regular function and an anonymous one when you pass it around.