Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Вычисления визуализация и програмирования в среде MATLAB 5 - Мартынов Н.Н.

Мартынов Н.Н., Иванов А.П. Вычисления визуализация и програмирования в среде MATLAB 5 — Техносфера , 2002. — 333 c.
Скачать (прямая ссылка): vichesleniyevizualizaciyai2002.pdf
Предыдущая << 1 .. 8 9 10 11 12 13 < 14 > 15 16 17 18 19 20 .. 115 >> Следующая

Для иллюстрации выполним над матрицами
А = [1 1 1; 2 2 2; 3 3 3]; В = [0 0 0; 7 7 7; 1 2 3]; операцию меньше или равно. Результат этой операции показан на рис. 1.18:
File ?dit ; Window Help _’
Q СЙЧТ"гк В', , В №1 ? _
» А<=В ans = 0 0 0
1 1 1
О 0 1
jlJ_„_
где каждый нуль означает «ложь» для данной позиции внутри матриц, а единица означает «истину». Полученная матрица показывает (своими единичными элементами), в каких позициях элементы матрицы А на самом деле меньше или равны соответствующим элементам матрицы В.
J
Рисунок 1.18
«> MATLAB Command Window
MATLAB 5.x. Вычисления, визуализация, программирование
37
Работу логических операций над массивами проиллюстрируем на примере операции «НЕ». Пусть задан вектор
v = [ 1 9 9 9 0 ] ;
Для этого вектора результат операции «НЕ», то есть ~v, равен
~v
ans =
0 0 0 0 1
Выше при изучении вычислений с вещественными скалярами мы рассматривали работу логической функции хог («исключающее ИЛИ»). Эта функция работает и с массивами одинаковых размеров, поэлементно реализуя операцию «исключающее ИЛИ». Напоминаем, что каждый элемент трактуется как истинный, если он не равен нулю, и как ложный в случае его равенства нулю. Покажем результат работы этой функции над ранее заданными матрицами А и В:
хог( А, В )
ans =
1 1 1
о о о
000
Другими логическими функциями (помимо функции хог) являются функции all и any. Функция all в случае векторов возвращает 1 («истина»), если все элементы вектора не равны нулю (истинны), и возвращает 0, когда хотя-бы один элемент вектора ненулевой. Функция any действует противоположным образом.
В случае матриц обе эти функции работают с их столбцами, возвращая для каждого столбца результат по описанной выше схеме. Например,
all ( а )
ans =
1 1 1
all ( В )
ans =
О О О
Существует множество разноплановых функций, специально предназначенных для работы с массивами. Таковыми являются ранее рассмотренные функции ones, zeros, sum, cat, size, ndims, reshape и многие другие. Часть из этих функций сообщает служебную информацию о массивах, другая группа функций обеспечивает контролируемое изменение их структуры, третья группа предназначена для генерации массивов с заданными свойствами и т. д.
Среди функций, генерирующих матрицы с заданными свойствами, упомянем здесь функцию eye, производящую единичные квадратные матрицы, а также широко применяемую на практике функцию rand, генерирующую массив со
I AdBd I . “HLAUBwc MdLLrlDM b СИСТеМе MAI LAD
случайными элементами, равномерно распределенными на интервале от 0 до 1. Например, выражение
А = rand( 3 )
порождает массив случайных чисел размером 3 х 3 с элементами, равномерно распределенными на интервале от 0 до 1 (см. рис. 1.19).
MATLAB Command Window №11Э|
help
D G» ! * 4? a 1 *-> | 0 hg i ?
A =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185 J
0.6068 0.7621 0.8214 „1
_Lj______ ____________ifi
Рисунок 1.19
Если вызвать эту функцию с двумя аргументами, например
R = rand( 2, 3 )
то получится матрица R случайных элементов размером 2x3. При вызове функции rand с тремя и более скалярными аргументами производятся многомерные массивы случайных чисел.
Среди функций, производящих простейшие вычисления над массивами, помимо рассмотренной выше функции sum, упомянем еще функцию prod, которая во всем аналогична функции sum, только вычисляет она не сумму элементов, а их произведение. К примеру, для определенной выше матрицы В она возвращает следующий результат:
prod( В )
ans =
О О О
Функции max и min ищут соответственно максимальный и минимальный элементы массивов. Для векторов они возвращают единственное числовое значение, а для матриц они порождают набор экстремальных элементов, вычисленных для каждого столбца. Например,
max( В )
ans =
7 7 7
Функция sort сортирует в возрастающем порядке элементы одномерных массивов, а для матриц она производит такую сортировку для каждого столбца отдельно.
Наконец, рассмотрим уникальную возможность М-языка системы MATLAB производить групповые вычисления над массивами, используя обычные математические функции, которые в традиционных языках программирования работают только со скалярными аргументами. В результате с помощью крайне компактных записей, удобных для ввода с клавиатуры в интерактивном режиме работы с командным окном системы MATLAB, удается произвести большой объем вычислений. Например, всего два коротких выражения
х = 0 : 0.01 : pi/2; у = sin( х );
вычисляют значения функции sin сразу в 158 точках, формируя два вектора х и у со 158 элементами каждый. Это уже весьма большой объем информации
о функции, достаточный для построения ее подробного графика. В частности, уже в следующей главе мы расскажем о том, как с помощью вызова всего одной функции системы MATLAB, на вход которой нужно подать полученные сейчас векторы х и у, можно построить график изучаемой функции в правильно подобранном масштабе, с отметками на осях координат и т. д.
Множественная индексация массивов в системе MATLAB
Мы только что рассмотрели уникальную возможность системы MATLAB осуществлять множественные вычисления обычными математическими функциями. Теперь мы рассмотрим другую уникальную особенность М-языка системы MATLAB - множественную индексацию массивов.
Предыдущая << 1 .. 8 9 10 11 12 13 < 14 > 15 16 17 18 19 20 .. 115 >> Следующая