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

2 次查看(过去 30 天)
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.

采纳的回答

Rik
Rik 2021-4-1
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Call Python from MATLAB 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by