str2num returning value while the preferred str2double returning NaN...

10 vues (au cours des 30 derniers jours)
Manuel S Mathew
Manuel S Mathew le 1 Avr 2021
Réponse apportée : Rik le 1 Avr 2021
New to MATLAB, so maybe this is a stupid question. I have the following script in MATLAB to run a python script and return a value (3.4763, for eg). When I use str2num like below, I get a the value in p. However, MATLAB suggests to use str2double. When I do that, I get NaN instead of the value. Please help...
w = 16;
systemCommand = ['python fun.py ',num2str(w)];
[stat, res] = system(systemCommand);
p = str2num(res);
What python returns from execution is '[3.4763]' in the variable res.

Réponse acceptée

Rik
Rik le 1 Avr 2021
This is another difference:
str2double('evalc(''exit'')')
ans = NaN
str2num('evalc(''exit'')')
%will exit Matlab
You should parse the result to single values. In your case simply removing the brackets will do, but this should be more robust:
str='[3.14159 1.00e-001]';
str2double(regexp(str,'[.0-9eE\-]*','match'))
ans = 1×2
3.1416 0.1000

Plus de réponses (0)

Catégories

En savoir plus sur Call Python from MATLAB dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by