Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Л а б о р а т о р н а я р а б о т а № 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; Просмотров: 315; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.035 с.)
Главная | Случайная страница | Обратная связь