Примечание про логическое индексирование

Логическое индексирование, т.е. обращение к элементам массива, удовлетворяющим некоторому условию, является очень удобным средством 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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: