double(<character>)在MATLAB和Octave中给出不同的结果

时间:2017-12-08 13:06:14

标签: matlab octave

MATLAB(documentation):

>> double('α')    
ans =    
   945

Octave 4.0.0,Ubuntu 16.04(documentation):

>> double('α')
ans =    
   206   177

为什么我会得到不同的结果?

注意:'α'是希腊小写的alpha。

1 个答案:

答案 0 :(得分:12)

这是因为MATLAB中的默认编码为'US-ASCII'(可能因Locale settings而异),而在Octave中,它是'UTF-8'

要确认,这是MATLAB的结果:

>> unicode2native('α', 'UTF-8')

ans =

  1×2 uint8 row vector

   206   177

您可以使用featureslCharacterEncoding()检查编码:

feature('DefaultCharacterSet')

slCharacterEncoding() 

根据Mathworks,您可以change your encoding使用:

slCharacterEncoding(encoding)

我在更改编码并获得相同结果后没有太多运气。这可能是一个错误。