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!

 Réponse acceptée

Bish Erbas
Bish Erbas le 24 Sep 2018
Modifié(e) : Bish Erbas le 24 Sep 2018
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 commentaires

No... that doesn't leave the string alone if it's actually a string..
>> str2num('2')
ans =
2
>> str2num('two')
ans =
[]
Bish Erbas
Bish Erbas le 24 Sep 2018
Modifié(e) : Bish Erbas le 24 Sep 2018
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

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 24 Sep 2018

1 vote

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

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by