Как уже отмечалось, правильным решением является преобразование результата в вектор. Тогда любой даст нужный результат. Таким образом,
любой(А(:))
дает глобальный результат, истинный, если любой из элементов numel(A) был истинным. Вы также могли бы использовать
любой (изменить форму (A, [], 1))
который явно использует оператор изменения формы. Если вы не хотите делать дополнительный шаг по преобразованию ваших матриц в векторы для их применения, то другой подход — написать собственную функцию. Например, вот функция, которая сделает это за вас:
======================
результат функции = myany(A)
% определяет, был ли вообще какой-либо элемент в A ненулевым
результат = любой (А (:));
======================
Сохраните это как m-файл на вашем пути поиска. Прелесть MATLAB (справедливая для любого языка программирования) в том, что он полностью расширяем. Если есть какая-то возможность, которую вы хотели бы иметь, просто напишите небольшую идиому, которая делает это. Если вы делаете это достаточно часто, вы настроите среду в соответствии со своими потребностями.
person
Community
schedule
02.04.2009