2012-04-28 3 views
0

У меня большая проблема в Matlab. У меня есть функция, и она иногда возвращает управляющие символы ascii. Как проверить наличие этих элементов управления ascii ?.Как заставить matlab обнаруживать несовместимые назначения типа?

мой код выглядит следующим образом

d = out.autoc 

d иногда принимает управляющую ASCII символов вместо фактического двойного значения. Кто-нибудь знает, как поймать такие несовместимые задания?

ответ

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 
0

Если вы хотите, чтобы проверить, что значение d вдвое, а не строка. Вы можете проверить это следующим образом:

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

Но если вы хотите, чтобы присвоить значение out.autoc в 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 
Смежные вопросы