trying to use anonymous function but it returns too many input arguments

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?

 채택된 답변

Tunechi
Tunechi 2020년 9월 19일
편집: Tunechi 2020년 9월 20일
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.

댓글 수: 2

Technically fwet_1 accepts up to 1 input argument and if you pass something into it as an input argument it will ignore that input. If you don't pass anything into it, that's fine too.
Thanks @Steven Lord

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

제품

릴리스

R2018b

질문:

2020년 9월 19일

편집:

2020년 9월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by