Если у вас есть только два значения, которые нужно проверить, вы можете использовать блок try/catch
.
try
set(hobject,'enable','inactive');
catch exception
if strcmp(exception.identifier,'MATLAB:hg:propswch:FindObjFailed')
set(hobject,'enable','off');
else
throw(exception)
end
end
Таким образом, при первой попытке проверки значения оно проверяется, является ли оно приемлемым. Если нет, он пытается следующий вариант. Если ошибка вызвана чем-то другим (например, вы ввели недопустимое имя свойства), она выводит ошибку на экран.
Кстати, идентификатор ошибки: MATLAB:hg:propswch:FindObjFailed
было тем, что я получил на своей машине, когда пытался установить значение, которое свойство не будет принимать. Хотя я подозреваю, что это должно быть то же самое, вы можете посмотреть, что вы получаете на своем компьютере, и использовать это в функции strcmp
.