string that may or may not need to be converted to num...

I am bringing a string into a function. I need to convert it to num ONLY if it's intended as a number like 2, 40, 100... but when the user enters it as something else, leave it as a string. Can that be done?
Thanks!

 Accepted Answer

Yes. Take a look at the function below:
str2num
Edit: OP clarified their question and one way to accomplish what they need would be using the following function:
Edit2: Use str2double instead. See comments section for details.

5 Comments

No... that doesn't leave the string alone if it's actually a string..
>> str2num('2')
ans =
2
>> str2num('two')
ans =
[]
I see. That part wasn't clear in your question. Try this:
Note that str2double is preferred over str2num, because str2num is a wrapper around eval, with all of its inherent disadvantages.
@Stephen Cobeldick is absolutely right. Thanks for the helpful reminder. Old habits die hard. I gotta learn to remember using the more efficient str2double
s = 'two';
t = str2double(s);
if isnan(t); t = s; end

Sign in to comment.

More Answers (1)

str2double() and test for nan, keep the original if you got nan.

Categories

Community Treasure Hunt

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

Start Hunting!