Check if a function handle is valid
이전 댓글 표시
I use str2fun(...) to create a function handle from a user-inputted string. I want to be able to run a check to make sure the function created is valid and no typos were made. I could not find a way to do this. Any suggestions?
Thanks, Ryan
MATLAB R2014a
댓글 수: 1
Steven Lord
2021년 2월 26일
What is a "valid" function handle?
f = @quit; % NOTE: Don't execute f if you have data in your MATLAB session you need!
f is a "valid" function handle in that it won't error when called. But you may not want users to enter 'quit' as the user-inputted string and blindly evaluate that function handle -- the "Bobby Tables" scenario.
g = @() zeros(1:12); % MAY error or MAY succeed and take a LONG time doing so
This may successfully execute (though it may take a while) or may throw an error depending on your computer's memory availability and your MATLAB settings. Is it "valid"?
채택된 답변
추가 답변 (3개)
Sean de Wolski
2014년 7월 1일
try
fun()
catch
disp 'didn''t work'
end
Try it and catch failures. Or provide a listbox with known functions to remove the human typing element.
Ryan
2014년 7월 1일
0 개 추천
댓글 수: 1
Sean de Wolski
2014년 7월 1일
Well if you catch the MException, you could look at the message of it.
...
catch ME
ME.message
end
Jos (10584)
2014년 9월 19일
0 개 추천
카테고리
도움말 센터 및 File Exchange에서 Scope Variables and Generate Names에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!