И. М. Губкина кафедра «Автоматизированных систем управления» Лабораторная работа

Вид материалаЛабораторная работа

Содержание


3.3.1.М-Файлы сценарии
Current Directory
3.3.2.М-Файлы функции
Необходимо загрузить функцию с файлом в Current Directory.
3.4.Основы программирования на языке MatLab
3.4.3.Вложенные циклы
3.4.4.Передача матрицы в качестве параметра функции
4.Задания для лабораторной работы
4.1.Группа АС-XX-4
Подобный материал:
1   2   3   4   5   6

3.3.М-Файлы



М-Файлы это обычные текстовые файлы с расширением *.m содержащие команды на языке MatLab. М-Файлы бывают двух типов М-Файлы сценарии и М-Файлы функции.

3.3.1.М-Файлы сценарии


Не имеют входных и выходных параметров. Работают с переменными из Workspace.

Также переменные, создаваемые в М-Файлах сценариях после выполнения М-Файла остаются в WorkSpace. Удобны для сохранения часто повторяющихся последовательных команд.

Пример М-Файла сценария “Sample.m”

File->New->M-File





Код сценария (или скрипта) надо сохранить в папку Current Directory с именем “Sample.m”.

Для выполнения сценария введем команду Sample (MatLab чувствителен к регистру)

результат:





обратите внимание, что в Workspace осталась переменная “y”

3.3.2.М-Файлы функции



Имеют входные и выходные параметры. Не могут работать с переменными из Workspace.Переменные создаваемые внутри М-Файла функции уничтожаются после исполнения. Создаются с помощью ключевого слова function.

Необходимо загрузить функцию с файлом в Current Directory.

ВАЖНО : Имя М-Файла функции должно совпадать с именем функции !!!

пример М-Файла функции “Sample2.m”





В строке команд ввведем

[A B] = Sample2(1, 2)

результат:





Окно Workspace после выполнения функции Sample2




3.4.Основы программирования на языке MatLab




3.4.1.if..elseif..end


В MatLab в отличие от языка С++ не надо использовать фигурные скобки {}. Если условие после IF не нулевое (т.е. истина) то будут выполнены все операторы до команды end, в противном случае будут выполнятся операторы стоящие после end

Пример


function y = signum(x)

if x > 0

y = 1;

elseif x == 0

y = 0;

else

y = -1;

end


Функция signum вернет знак переменной x если она не равна нулю и ноль в противном.

3.4.2.Циклы


while

Выполняются все команды между while..end пока условие while’а верно.

пример :

i = 0;

while i < 50

i = i + 1

disp('еще разок')

end

For

Выполняются все команды между For..end заданное количество раз.

Пример :

for i = 1:2:20;

disp('еще разок i = i + 2')

i

end

disp('все, хватит !!!')

3.4.3.Вложенные циклы



j = 0;

for i = 1:2:20; %нам не нужен вывод значений i

disp('еще разок i = i + 2')

I %а здесь как раз нужен !

while j < 4

disp('а теперь J')

j = j + 1 %и здесь тоже

end

j = 0;

end

disp('все, хватит !!!')

Обратите внимание на положение точек с запятой.

3.4.4.Передача матрицы в качестве параметра функции


Матрицу можно получать в качестве аргумента к функции, Пример.




Результат Работы







Рекомендуется книга MatLab R2007 с нуля! издательство “лучшие книги”

4.Задания для лабораторной работы


Решить матричную игру, заданную платежной матрицей.

Пусть у игроков A и B разные интересы. Игра задана платежной матрицей Aij размером (mxn). Требуется написать M-Файл функцию которой передается платежная матрица A в качестве параметра, результатом работы функции должно быть решение матричной игры.

Номера вариантов платежных матриц совпадают с номерами в журнале.

4.1.Группа АС-XX-4


Матрица A

1







3

1

4




6

5

3




7

8

7




5

9

9




Матрица A

2










9

1

2

4




10

10

8

7




6

9

1

7




4

3

2

6




Матрица A

3










3

3

4

3

7

7

8

6

4

7

7

1

6

7

9

2

9

10

8

9

Матрица A

4







1

2

2




3

8

5




4

6

4




9

10

8




Матрица A

5










10

5

7

8




4

10

5

5




7

4

7

6




9

2

2

7




Матрица A

6










7

10

2

9

5

9

2

9

6

5

1

2

4

2

8

10

5

6

9

8

Матрица A

7







4

1

1




8

1

3




4

1

1




7

5

1




Матрица A

8










2

2

3

4




1

2

10

10




9

6

5

4




9

8

9

6




Матрица A

9










7

7

1

1

10

7

9

8

2

3

4

1

10

6

2

8

10

8

2

1

Матрица A

10







8

2

8




7

2

5




9

6

8




10

6

9




Матрица A

11










2

1

2

3




1

7

5

1




9

6

8

10




2

6

1

3




Матрица A

12










1

6

1

5

10

4

4

4

2

8

5

2

8

2

10

10

3

9

4

2

Матрица A

13







7

3

4




2

6

1




5

9

6




4

9

7




Матрица A

14










10

2

6

6




6

1

9

9




2

2

9

8




6

10

2

5







Матрица A

15










1

3

2

1




10

3

6

1

5

7

7

10

3

1

10

10

6

10

7

Матрица A

16







9

5

6

2




1

3

3




8

1

1




1

4

10




Матрица A

17










2

10

6

7




7

2

1

9




4

7

8

3




8

4

8

8




Матрица A

18










5

8

4

8




8

7

1

4

8

1

9

1

9

10

5

3

7

9

8

Матрица A

19







4

4

2

5




8

6

9




3

1

3




10

2

2




Матрица A

20










9

1

1

10




1

5

5

1




10

3

8

10




6

7

9

5




Матрица A

21










1

10

5

7




7

6

9

9

3

9

7

1

7

2

9

10

5

1

8

Матрица A

22







9

3

2

4




7

3

8




8

8

10




1

8

4







Матрица A

23










5

5

10

4




10

8

2

2




9

2

2

1




6

10

10

9




Матрица A

24










3

5

2

8




2

7

1

10

5

4

9

1

3

1

7

2

8

7

3

Матрица A

25







5

9

1

6




10

5

4




7

10

7




8

5

8




Матрица A

26










3

4

4

6




8

9

1

7




9

8

8

6




10

8

8

3




Матрица A

27










2

10

10

3




7

2

6

5

9

5

8

10

3

8

1

8

3

9

5

Матрица A

28







5

4

1

7




8

2

9




4

4

8




8

4

3




Матрица A

29










8

7

10

3




10

4

4

6




10

2

4

2




3

7

9

1




Матрица A

30










6

1

5

3




6

2

5

8

3

6

7

10

8

10

2

4

1

5

7













9