当我在MATLAB中调用␇字符时会发生什么

时间:2014-01-13 17:03:10

标签: matlab ascii windows-server-2008-r2

在尝试回答Play a sound any sound question时,我遇到了字符。

然而,当试图在MATLAB中调用它时,我注意到一些奇怪的事情:没有发生任何事情。

使用R2012b,我将它从浏览器复制到MATLAB中。

以下是一些观察结果:

  1. 粘贴角色时,会显示红色方块
  2. 当按下回车时,没有给出任何错误。
  3. 为它添加零␇+0也什么都不做。
  4. 在字符串中使用它似乎是可能的,但会产生一个奇怪的结果:'␇'+ 0 = 26
  5. 在函数中调用它会有些奇怪,请尝试mean(␇)并且您的命令似乎永远不会结束(除了控件+ c)
  6. 总而言之,这是我的主要问题:

    当我在Matlab中运行时会发生什么?为什么MATLAB以这种奇怪的方式处理这个明显无效的输入?

1 个答案:

答案 0 :(得分:1)

您输入的character只是MATLAB命令提示符(甚至编辑器)知道如何显示范围之外的另一个Unicode字符。仅因为它代表“bel的符号”并不意味着它具有任何特殊意义或在输入时播放声音(不超过其他musical symbols类似:

当然,您始终可以将其保存在常规字符串中并在GUI窗口中显示:

% The default on Windows is 'windows-1252'
feature('DefaultCharacterSet','UTF-8')

c = char(9223);
uicontrol('style','text', 'units','normalized', 'position',[0 0 1 1], ...
    'string',['char = ' c], 'FontName','Arial Unicode MS', 'FontSize',72)

bel_symbol

甚至以UTF-8表示其编码:

>> cellstr(dec2hex(unicode2native(c,'UTF-8')))
ans = 
    'E2'
    '90'
    '87'