
为什么double(fun)输出97 98 115 40 120 41
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在MATLAB中,eval函数用于执行字符串中的表达式,而double函数用于将其他数据类型转换为双精度浮点数。在这个例子中,fun是一个包含字符串' abs(x) '的变量。
当你使用eval(fun)时,MATLAB会计算表达式abs(x)的值,其中x已经被定义为-2。因此,eval(fun)的结果是2,即-2的绝对值。
然而,当你使用double(fun)时,MATLAB会尝试将字符串' abs(x) '转换为双精度浮点数。由于字符串不能直接转换为数字,MATLAB会将字符串中的每个字符转换为其对应的ASCII码值。在这个例子中,字符串' abs(x) '包含以下字符及其对应的ASCII码值:
因此,double(fun)的结果是将这些ASCII码值作为向量输出:[97, 98, 115, 40, 120, 41]。