【问题标题】:double(<character>) gives different result in MATLAB and Octavedouble(<character>) 在 MATLAB 和 Octave 中给出不同的结果
【发布时间】:2017-12-12 16:02:17
【问题描述】:

MATLAB (documentation):

>> double('α')    
ans =    
   945

Octave 4.0.0,Ubuntu 16.04 (documentation):

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

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

注意:“α”是希腊小写字母。

【问题讨论】:

    标签: matlab octave


    【解决方案1】:

    这是因为 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)
    

    我在更改编码并在之后获得相同结果方面运气不佳。这可能是一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      • 2020-05-28
      • 2012-01-30
      • 2015-04-11
      • 2016-05-06
      • 2015-09-26
      • 2015-08-09
      相关资源
      最近更新 更多