Кванторы общности и существования

Можно было бы данный раздел назвать по-другому: проверка выполнения условий для всех элементов матрицы и проверка выполнения условий хотя бы для одного элемента матрицы.

  Задание 2. Для матрицы E выяснить

a) Все ли её значения положительны?

b) Есть ли у неё положительные значения?

Решение. Для ответа на эти вопросы в общем случае нам понадобятся операторы: all(…) и any(…). Чтобы понять различия в этих логических операциях, составим проверку условия положительности для каждого элемента матрицы:

E > 0            # Проверяем каждый элемент матрицы E на положительность

с результатом в окне консоли:

> E > 0         # Проверяем каждый элемент матрицы E на положительность

[,1] [,2]

[1,] TRUE FALSE

[2,] FALSE TRUE

Нетрудно видеть, что не все элементы матрицы E строго положительны, хотя имеются и такие. Так что, ответ на первый вопрос: FALSE, а на второй – TRUE.

Однако на практике матрица может быть настолько больших размеров, что вывести на экран результат для каждого её элемента не представляется возможным. Здесь как раз и будет уместно использовать специальные логические операторы all(…) и any(…). Поcмотрите, как элегантно выглядят в коде ответы на наши два вопроса:

all(E > 0) # Ответ на вопрос: для всех ли элементов матрицы E выполнено условие?

any(E > 0) # Ответ на вопрос: выполнено ли условие хотя бы для одного элемента?

с тем же результатом:

> all(E > 0) # Ответ на вопрос: для всех ли элементов матрицы E выполнено условие?

[1] FALSE

> any(E > 0) # Ответ на вопрос: выполнено ли условие хотя бы для одного элемента?

[1] TRUE

 

Транспонирование матриц

Задание 3. Найти транспонированную матрицу .

Решение. Более простой по семантике операции в R не существует:

t(S)          # Транспонирование матрицы S

> t(S)          # Транспонирование матрицы S [,1] [,2] [,3]V1 1 -6 1V2 -2 4 8V3 0 2 -11V4 2 -3 6V5 5 0 8V6 3    0 9

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



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