Итак, у меня есть следующий код, который является простым оператором if с всплывающим окном. Мой вопрос в том, почему это не работает, когда я использую какие-либо (error == 1) вместо любого (any (error == 1))?Почему любая (любая (A)) работает там, где нет (A)?
K=100
error = zeros(K,28)
%lots of other code
error(K,2)=1 %this is here as a test to trigger the true logic statement
if any(any(error==1))
disp('hello')
f = figure;
h = uicontrol('Position',[20 20 50 40],'String','Ok','Callback','uiresume(gcbf)');
uiwait(gcf);
close(f);
end
У меня работает мой код, но вы хотите понять работу «любой» функции.
Выполнение кода с последующим «любой (ошибка == 1)» возвращает нет ошибок в моей системе. Это то, что возвращается вектор? Это проблема? – danny
Поскольку 'error' является двумерной матрицей,' any (error == 1) ', которая по существу' any (error == 1,1) ', будет вектором строки, и если вы используете ее с условным условным обозначением' IF', это должно быть все 'ones/true', чтобы попасть в часть IF. Но с 'any (any (error == 1))', который был бы скаляром и для этого был бы 'one/true', любой из элементов из ранее полученного вектор-строки должен быть' one/true'. Итак, подведем итог: 'any (any (error == 1))' немного более «внимательный», чем 'any (error == 1)'. – Divakar
Хорошо. Я подозревал, что это, вероятно, причина, но я не понимал, что IF должен быть полностью заполнен теми, которые запускают TRUE. Очень полезно, спасибо. – josh