Check if a function handle is valid
Ältere Kommentare anzeigen
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 Kommentar
Steven Lord
am 26 Feb. 2021
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"?
Akzeptierte Antwort
Weitere Antworten (3)
Sean de Wolski
am 1 Jul. 2014
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
am 1 Jul. 2014
0 Stimmen
1 Kommentar
Sean de Wolski
am 1 Jul. 2014
Well if you catch the MException, you could look at the message of it.
...
catch ME
ME.message
end
Jos (10584)
am 19 Sep. 2014
0 Stimmen
Kategorien
Mehr zu Scope Variables and Generate Names finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!