Логическое индексирование, т.е. обращение к элементам массива, удовлетворяющим некоторому условию, является очень удобным средством MATLAB для обработки данных. Примеры логического индексирования приведены в справочной системе MATLAB в разделе: Programming: Data Types: How Logical Arrays are Used. Например, если в некотором массиве A
A = [1 2 3; 12 1 2; 33 90 1];надо заменить элементы, превосходящие среднее арифметическое его значений в полтора раза на среднее арифметическое, то достаточно использовать операторы:
m = mean(mean(A))A(A>1.5*m) = mТак происходит потому, что результатом операции сравнения (примененной к исходному массиву A) является логический массив (тип logical array) того же размера, что и A, в котором единицы означают выполнение проверяемого условия для соответствующих элементов массива A
A>1.5*mans = 0 0 0 0 0 0 1 1 0Указание этого массива в качестве индекса для исходного массива A приводит к обращению к тем его элементам, которым соответствуют логические единицы. В нашем примере это элементы с индексами 3, 1 и 3, 2, которые как раз и превосходят в полтора раза среднее арифметическое элементов заданного массива A.