从一般使用的情况来说,这两个函数没有什么太大的差别。如果非要时候什么差别,在matlab的str2num帮助文件中,有这一段叙述:
大致的意思是说,str2num函数使用eval函数进行输入参数的转换。如果输入参数的字符串中包含函数调用的话,一些副作用会产生。使用str2double可以避免这些副作用。
%****************************************************************%
% 在MATLAB中str2num和str2double具有相同点和不同点分别如下: %
%****************************************************************%
1.当string为数值字符时:该情况下,两个函数是一样的。
str = '5';
a1 = str2num(str); % a1=5
a2 = str2double(str); % a2=5
2.当string为非数字字符时:该情况下,两个函数是不一样的。
str = 'a';
a1 = str2num(str); % a1=[]
a2 = str2double(str); % a2=NaN, 非数