![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Л а б о р а т о р н а я р а б о т а № 8
1. Введите вектор-строку N, состоящую из 8 произвольных элементов. 2. Отсортируйте N по возрастанию. 3. Введите вектор-столбец Х, состоящий из 8 произвольных элементов. 4. Отсортируйте элементы Х. 5. Введите матрицу D, размером 6х6, состоящую из произвольных элементов. 6. Отсортируйте элементы этой матрицы по строкам. 7. Отсортируйте элементы матрицы D по столбцам. 8. Отсортируйте D так, чтобы на экран были выведены индексы элементов. 9. Введите матрицу Z размером 6х6, состоящую из произвольных элементов. 10. Отсортируйте строки этой матрицы. 11. Осуществите сортировку этой матрицы с выводом индексов сортируемых строк. 12. Отсортируйте матрицу Z по второму столбцу. 13. Отсортируйте матрицу Z по пятому столбцу. 14. Отсортируйте матрицу Z по первому столбцу. 15. Введите матрицу L размером 4х4, состоящую из произвольных элементов. 16. Получите матрицу коэффициентов корреляции. 17. Введите матрицу К размером 5х5, состоящую из произвольных элементов. 18. Получите матрицу ковариаций для матрицы К. 19. Выведите вектор дисперсий для каждого столбца. 20. Получите вектор стандартных отклонений.
Л е к ц и я № 17, 18
Диалоговый ввод Рассмотрим простой пример диалоговой программы
%Вычисление длины окружности r=0; while r> =0; r=input(‘Введите радиус окружности r=’); if r> =0 disp(‘Длина окружности l=’); disp(2*pi*r) end end
Эта программа служит для многократного вычисления длины окружности по вводимому пользователем значению радиуса r. Организация простейшего диалога реализована с помощью команды input: r=input(‘Введите радиус окружности r=’).
При выполнении этой команды вначале выводится запрос в виде строки, затем происхо-дит остановка работы программы и ожидается ввод значения радиуса r (в общем случае числа). Ввод, как обычно, подтверждается нажатием клавиши Enter, после чего введенное число прис-ваивается переменной r. Следующие строки
if r> =0 disp(‘Длина окружности l=’); disp(2*pi*r) end
с помощью команды disp при r> =0 выводят надписи «Длина окружности l=» и вычисленное значение длины окружности. Они представляют собой одну из наиболее простых управляющих структур типа if…end. В данном случае она нужна для остановки вычислений, если вводится отрицательное число. Приведенные строки включены в управляющую структуру while…end. Это необходимо для циклического повторения вычислений с вводом значений r. Пока r> =0, цикл повторяется. Но стоит задатьr< =0, вычисление длины окружности перестает выполняться, а цикл завершается. Если данная программа записана в виде m-файла, например, tbilisi.m, то работа с ней бу-дет выглядеть следующим образом:
> > tbilisi Введите радиус окружности r=1 Длина окружности l= 6.2832
Введите радиус окружности r=2 Длина окружности l= 12.5664
Введите радиус окружности r=-1 > >
Итак, даже на примере простой программы видна польза применения управляющих струк-тур типа if…end и while…end, а также функций диалогового ввода input(‘String’) и вывода disp. Функция input может использоваться и для ввода произвольных стрковых выражений. При этом она задается в следующем виде
input(‘Комментарий’, ‘s’)
При выполнении этой функции она останавливает вычисления и ожидает ввода строкового комментария. После ввода возвращается набранная строка. Это иллюстрирует следующий пример: > > s=input(‘Введите выражение’, ‘s’) Введите выражение 2*sin(1) s = 2*sin(1) > > eval(s) ans = 1.6829
Функция eval позволяет вычислить выражение, заданное (полученное от функции input) в символьном виде. Вообще говоря, возможность ввода любого символьного выражения в соче-тании с присущими языку программирования matlab управляющими структурами открывает путь к созданию диалоговых программ любой сложности. Условный оператор Условный оператор if в общем виде записывается следующим образом: if Условие Инструкции_! elseif Условие Инструкции_2 else Инструкции_3 еnd Эта конструкция допускает несколько частных вариантов. В простейшей конструкции типа if…end if Условие Инструкции end пока Условие возвращает логическое значение 1 (то есть «истина»), выполняются Инструкции, составляющие тело структуры if…end. При этом оператор end указывает на конец перечня инс-трукций. Инструкции в списке разделяются оператором, (запятая) или; (точка с запятой). Если Условие не выполняется (дает логическое значение 0, «ложь»), то Инструкции также не выпол-няются. Еще одна конструкция if Условие Инструкции_1 else Инструкции_2 end выполняет Инструкции_1, если выполняется Условие, или Инструкции_2 в противном случае. Условия записываются в виде Выражение_1 Оператор отношения Выражение_2 причем в качестве Операторов отношения используют следующие операторы: =, <, >, < =, > = или ~=. Все эти операторы представляют собой пары символов без пробелов между ними. Циклы типа for…end Циклы типа for…end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид: for var=Выражение, Инструкция, ... Инструкция еnd Выражение чаще всего записывается в виде s: d: e, где s – начальное значение переменной var, d – приращение этой переменной и е – конечное значение управляющей переменной, при достижении которого цикл завершается. Возможна и запись в виде s: e (в этом случае d=1). Спи-сок выполняемых в цикле инструкций завершаеся оператором end. Следующие примеры поясняют применение цикла для получения квадратов значений переменной цикла: > > for i=1: 5 i^2, end; ans = ans = ans = ans = ans = > > for x=0:.25: 1 x^2, end; ans = ans = 0.0625 ans = 0.2500 ans = 0.5625 ans = Возможны вложенные циклы, например: for i=1: 3 for j=1: 3 A(i, j)=i+j; end end В результате выполнения этого цикла (файл tbilisi.m) формируется матрица А > > tbilisi > > A A = 2 3 4 3 4 5 4 5 6 MATLAB допускает использование в качестве переменной цикла массива А размером mxn. При этом цикл выполняется столько раз,, сколько столбцов в массиве А, и на каждом шаге переменная var представляет собой вектор, соответствующий текущему столбцу массива А: > > A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 > > for var=A; var, end var = var = var = Циклы типа while…end Цикл while выполняется до тех пор, пока выполняется Условие while Условие Инструкции еnd Пример применения цикла while ранее уже приводился. Досрочное завершение цикла ре-ализуется с помощью оператора break. |
Последнее изменение этой страницы: 2017-03-17; Просмотров: 342; Нарушение авторского права страницы