0

こんにちは、matlab に大きな問題があります。関数があり、制御ASCII文字を返すことがあります。これらのコントロール ascii の存在を確認するにはどうすればよいですか?

私のコードは次のようになります

d = out.autoc

d は、実際の double 値ではなく、制御 ASCII 文字を受け取ることがあります。誰かがそのような互換性のない割り当てをキャッチする方法を知っていますか?

4

2 に答える 2

0

dの値が文字列ではなく double であることを確認したい場合。次の方法で確認できます。

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

out.autocただし、 が double の場合にdのみの値を代入したい場合out.autocは、次のようにできます。

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 に答える