str2num results

2 visualizzazioni (ultimi 30 giorni)
John
John il 5 Feb 2020
Risposto: John il 5 Feb 2020
Here is a test, please try it. I can't explain the reason. Thanks.
>> a='sss'
a =
'sss'
>> b=str2num(a)
b =
[]
>> isnumeric(b)
ans =
logical
1
>> a='ss'
a =
'ss'
>> b=str2num(a)
b =
Empty state-space model.
>> isnumeric(b)
ans =
logical
0
>> a='ssa'
a =
'ssa'
>> b=str2num(a)
b =
[]
>> isnumeric(b)
ans =
logical
1
>>
  1 Commento
Geoff Hayes
Geoff Hayes il 5 Feb 2020
John - I saw this link Create state-space model, convert to state-space model which may be relevant given the 'ss' string and the 'Empty state-space model' message. Perhaps, under the hood, MATLAB is taking the 'ss' string and somehow creating a state space model (since ss is the function used to create a state space model).

Accedi per commentare.

Risposte (3)

Fangjun Jiang
Fangjun Jiang il 5 Feb 2020
ss() happen to be a function. You could run b=ss alone;

Steven Lord
Steven Lord il 5 Feb 2020
From the documentation page for str2num: "In addition, str2num uses the eval function, which can cause unintended side effects when the input includes a function name. To avoid these issues, use str2double."
Neither sss nor ssa are functions in any MathWorks product.
ss is a function in Control System Toolbox.

John
John il 5 Feb 2020
Sometimes str2double gives error. Anyways, either way, How can we test if the input string is numeric? Like this:
>> a='notnumeric'
a =
'notnumeric'
>> b=str2double(a)
b =
NaN
>> isnumeric(b)
ans =
logical
1
The test says it's a numeric.

Community Treasure Hunt

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

Start Hunting!

Translated by