Clear Filters
Clear Filters

How to check if a user entered input will form a valid function handle?

4 views (last 30 days)
The user enters a character vector (in the edit text field of Appdesigner). I want to convert it into a function handle. I am doing this by concatenating it with '@(x,y)', making the function compatible with matrices and then using str2func. However, I want to be able to check if the input by the user is valid. Also, the function entered by the user must have its variables as x and/or y only.
For example, if the entered input is 'log(x)+sin(y)' the entry is valid whereas if the input is 'log(x)+*sin(y)' it should show an error.
Mohit Kumar
Mohit Kumar on 8 Oct 2020
Okay, that was a poor mistake on my part. Something like log(x)+*sin(y). Have made the same change in the question.

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 8 Oct 2020
You may try exception handling to check if a function handle is valid
x = 'x^2+2+SUM(x)'; % SUM is not a valid function in MATLAB
f = str2func(['@(x) ' x]);
is_correct = true;
f(0); % or some other value
catch ME
is_correct = false;
error(ME.message); % throw an error, remove this line if you don't
% want an error appearing in command window.

More Answers (0)




Community Treasure Hunt

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

Start Hunting!