0

嗨,matlab 有一个大问题。我有一个函数,它有时会返回控制 ascii 字符。我如何检查这些控件 ascii 的存在?

我的代码看起来像这样

d = out.autoc

d 有时接收控制 ascii 字符而不是实际的双精度值。有人知道如何捕捉这种不兼容的任务吗?

4

2 回答 2

0

如果要检查的值d是双精度,而不是字符串。你可以这样检查:

if ~isnumeric(d) || ~isdouble(d)
    fprintf('d is not of class double\n');
end

但是,如果您想将 to 的值分配out.autocdonly ifout.autoc是 double,您可以这样做:

if isnumeric(out.autoc) && isequal(class(out.autoc), 'double')
    d = out.autoc;
else
    fprintf('out.autoc is not of class double, no assignment made.\n');
end
于 2012-04-28T08:34:44.087 回答
0

我认为这应该可行,但您可能需要仔细检查要排除的 ASCII 代码。

%here I load Ctrl-C
s = sprintf('%s', 3);
code = bin2dec(dec2bin(s,8));
if code < 32 
  fprintf('ignore');
else
  fprintf('do somsething');
end
于 2012-04-28T08:18:22.057 回答