Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Решение задач обработки матриц
Для понимания этого раздела необходимо ознакомиться с приложением. Продемонстрируем приемы программирования на языке MATLAB на примере задачи обработки матрицы (уровня 2.5.2. из [3]). В отличии от классических универсальных языков программирования (Pascal, C, Fortran), предполагающих компиляцию программ, в MATLAB-программе не требуется вводить размеры массивов; они определяются автоматически по присваиваемым или вводимым из файла значениям массива, и могут быть получены с помощью функций size и ndims. Рассмотрим операторы, с помощью которых можно определить размеры массива. Оператор [n,m] = size(а) возвращает n и m - размеры матрицы а. Длину n вектора b можно также определить с помощью оператора: n= length(b) Число n индексов массива Х можно вычислить, используя оператор: n = ndims(Х). Пример 1. Дана матрица а. Для каждой строки матрицы найти сумму элементов и определить число строк, для которых эта сумма положительна. Обозначения поясняются таблицей 1. Размеры матрицы (n и m) формально отнесены к промежуточным данным, так как в программе будут вычисляться с применением функции size. Таблица 1. Состав данных примера 1.
На рис. 1.6 изображена блок-схема алгоритма. Обратите внимание, что блок 6 содержит параметрический цикл, в котором вычисляется сумма элементов строки. На рис.1.7 показан алгоритм, закодированный на языке MATLAB, и результаты его выполнения; для сравнения рядом приведена PASCAL-программа. Легко видеть, что текст MATLAB проще и короче. Однако приведенная последовательность инструкций в командном окне MATLAB в сущности не является автономной программой. Его нельзя повторно запустить (без копирования через буфер обмена), нельзя отредактировать, нельзя транслировать в исполняемую программу (файл с расширением.exe). Причина этих ограничений состоит в том, что транслятор командного окна MATLAB является интерпретатором. Чтобы частично снять эти ограничения, надо оформить последовательность MATLAB-команд как M-файл (см. лабораторную работу №2).
Основное преимущество языка PASCAL (как и любого языка, требующего компиляции) состоит в простоте создания обособленного от среды программирования исполняемого файла. Заметим, что в работе инженера часто требуется получить результат, а не инструмент исследования. В такой ситуации интерактивные пакеты прикладных программ (такие как MATLAB) вне конкуренции. Кроме того, в диалоговом режиме, пробуя различные варианты вычислений, можно построить оптимальный алгоритм решения задачи, на основе которого впоследствии создать исполняемую программу. Задачу примера 1 можно решить без операторов условия и цикла с помощью функции find (массив), которая возвращает индексы ненулевых элементов массива в виде вектор-столбца; нумерация элементов матрицы осуществляется по столбцам. Получаем лаконичное решение: >> load d:\valentina\a.txt >> s=sum(a'); >> k=length(find(s>0));
2. Задание 1. 2. Разработайте блок-схему алгоритма для задачи [3] 2.5.2.N+1. 3. Закодируйте алгоритм на языке MATLAB, используя таблицу П.6 (кодирование основных алгоритмических структур – см. Приложение). Предусмотрите ввод исходных данных из текстового файла и вывод результатов в командное окно MATLAB и в текстовый файл.
|
|||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 401; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.100.120 (0.006 с.) |