Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_практикум_ОВИ_03_06_13

.pdf
Скачиваний:
63
Добавлен:
14.04.2015
Размер:
4.1 Mб
Скачать

одной строке, и пришлось записать ее в две строки, для чего в конце первой строки поставлены три точки.

Замечание 1

Для ввода длинных формул или команд в командную строку следует поставить три точки (подряд, без пробелов), нажать клавишу <Enter> и

продолжить набор формулы на следующей строке. Так можно разместить выражение на нескольких строках. MATLAB вычислит все выражение или выполнит команду после нажатия на <Enter> в последней строке (в

которой нет трех идущих подряд точек).

MATLAB запоминает значения всех переменных, определенных во время сеанса работы. Если после ввода примера, приведенного выше, были проделаны еще какие-либо вычисления, и возникла необходимость вывести значение х, то следует просто набрать х в командной строке и нажать <Enter>:

» x

-0.6611

Переменные, определенные выше, можно использовать и в других формулах. Например, если теперь необходимо вычислить выражение

sin 1,3 ln 3,4 tg 2,75th 2,75 3 / 2 ,

то достаточно ввести следующую команду:

» (x-y)^(3/2)

ans =

-0.8139 + 0.3547i

21

Вызов функций в MATLAB обладает достаточной гибкостью.

Например, вычислить е3,5 можно, вызвав функцию ехр из командной строки:

» ехр(3.5)

ans =

33.1155

Другой способ состоит в использовании оператора присваивания:

» t = ехр(3.5)

t =

33.1155

Предположим, что часть вычислений с переменными выполнена, а

остальные придется доделать во время следующего сеанса работы с

MATLAB. В этом случае понадобится сохранить переменные,

определенные в рабочей среде.

2.1.2. Сохранение рабочей среды

Самый простой способ сохранить значения всех переменных использовать в меню File пункт Save Workspace As… . При этом появляется диалоговое окно Save… , в котором следует указать каталог и имя файла.

По умолчанию предлагается сохранить файл в подкаталоге work основного каталога MATLAB. Оставьте пока этот каталог. В дальнейшем будет объяснено, как устанавливать пути к каталогам в MATLAB для поиска файлов. Удобно давать файлам имена, содержащие дату работы, например work20-06-12. MATLAB сохранит результаты работы в файле work20-06-12.mat. Теперь можно закрыть MATLAB одним из следующих способов:

22

выбрать в меню File пункт Exit MATLAB;

нажать клавиши <Ctrl>+<Q>;

набрать команду Exit в командной строке и нажать <Enter>;

нажать на кнопку с крестиком в правом верхнем углу окна программы MATLAB.

В следующем сеансе работы для восстановления значений переменных следует открыть файл work20-06-12.mat при помощи пункта

Open меню File. Теперь все переменные, определенные в прошлом сеансе,

стали доступными. Их можно использовать во вновь вводимых командах.

Сохранение и восстановление переменных рабочей среды можно выполнить и из командной строки. Для этого служат команды save и load.

В конце сеанса работы с MATLAB надо выполнить команду

» save work20-06-12

Расширение можно не указывать, MATLAB сохранит переменные рабочей среды в файле work20-06-12.mat. В начале следующего сеанса работы для считывания переменных следует ввести команду

» load work20-06-12

Подробную информацию о командах save и load можно получить,

набрав в командной строке help save или help load.

Замечание 2

Переменные в файлах с расширением mat хранятся в двоичном виде.

Просмотр этих файлов в любом текстовом редакторе не даст никакой информации о переменных и их значениях.

ВMATLAB имеется возможность записывать исполняемые команды

ирезультаты в текстовый файл (вести журнал работы), который потом

23

можно легко прочитать или распечатать из текстового редактора. Для начала ведения журнала служит команда diary. В качестве аргумента команды diary следует задать имя файла, в котором будет храниться журнал работы. Набираемые далее команды и результаты их исполнения будут записываться в этот файл, например, последовательность команд

»diary d20-06-12.txt

»al = 3;

»а2 = 2.5;

»а3 = al + a2

»а3 =

5.5000

»save work20-06-12

»quit

производит следующие действия:

Открывает файл d20-06-12.txt.

Производит вычисления.

Сохраняет переменные в двоичном файле work.20-06-12.mat.

Сохраняет на диске в подкаталоге work корневого каталога

MATLAB журнал работы в файле d20-06-12.txt и закрывает MATLAB.

Посмотрите содержимое файла d20-06-12.txt в каком-нибудь текстовом редакторе, например, в стандартной программе Windows

Блокнот (NotePad). В файле окажется следующий текст:

al = 3;

а2 = 2.5;

а3 = al+a2

а3 =

5.5000

24

save work20-02-06

quit

Запустите снова MATLAB и введите команду load work20-06-12 или откройте файл work20-06-12.mat при помощи меню, как описано выше.

2.1.3. Просмотр переменных

При работе с достаточно большим количеством переменных необходимо знать, какие переменные уже использованы, а какие нет. Для этой цели служит команда who, выводящая в командное окно MATLAB

список используемых переменных:

» who

Your variables are:

al a2 a3

Команда whos позволяет получить более подробную информацию о переменных в виде таблицы:

»

 

 

 

Name

Size

Bytes

Class

al

1 l

8

double

a2

1 l

8

double

a3

l l

8

double

Grand total is 3 elements using 24 bytes

Первый столбик Name состоит из имен используемых переменных.

То, что содержится в столбике Size, по существу, определяется основным принципом работы MATLAB. Программа MATLAB все данные представляет в виде массивов. Переменные al, a2 и а3 являются двухмерными массивами размера один на один. Каждая из переменных занимает по восемь байтов, как указано в столбике Bytes. Наконец, в

25

последнем столбике Class указан тип переменных double array, т.е.

массив, состоящий из чисел двойной точности. В строке под таблицей написано, что в итоге три элемента, т.е. переменные, занимают двадцать четыре байта. Оказывается, что представление всех данных в MATLAB в

виде массивов дает определенные преимущества.

Для освобождения из памяти всех переменных используется команда clear. Если в аргументах указать список переменных (через пробел), то только они будут освобождены из памяти, например:

»clear al аЗ

»who

Your variables are:

a2

Начиная с версии 6.0, появилось удобное средство для просмотра переменных рабочей среды окно Workspace, для перехода к которому следует активизировать одноименную закладку. Данное окно содержит таблицу, аналогичную той, что выводится командой whos. Двойной щелчок по строке, соответствующей каждой переменной, приводит к отображению ее содержимого в отдельном окне, что особенно полезно при работе с массивами. Панель инструментов окна Workspace позволяет удалить лишние переменные, сохранить и открыть рабочую среду.

2.1.4. Работа с массивами

Очень важно правильно понять, как использовать массивы. Без этого невозможна эффективная работа в MATLAB, в частности построение графиков, решение задач линейной алгебры, обработки данных,

статистики и многих других. В данном подразделе описаны вычисления с векторами.

26

Массив упорядоченная, пронумерованная совокупность

однородных данных. У массива должно быть имя. Массивы различаются по числу размерностей или измерений: одномерные, двухмерные,

многомерные. Доступ к элементам осуществляется при помощи индекса. В

MATLAB нумерация элементов массивов начинается с единицы. Это значит, что индексы должны быть больше или равны единице.

Важно понять, что вектор, вектор-строка или матрица являются математическими объектами, а одномерные, двухмерные или многомерные массивы способы хранения этих объектов в компьютере. Далее будут использоваться слова вектор и матрица, если больший интерес представляет сам объект, чем способ его хранения. Вектор может быть записан в столбик (вектор-столбец) и в строку (вектор-строка). Вектор-

столбцы и вектор-строки часто будут называться просто векторами,

различие будет сделано в тех случаях, если важен способ хранения вектора в MATLAB. Векторы и матрицы обозначаются курсивом, а

соответствующие им массивы прямым моноширинным шрифтом,

например: "вектор а содержится в массиве а", "запишите матрицу R в

массив R".

Ввод, сложение и вычитание векторов

Работу с массивами начнем с простого примера вычисления суммы

векторов:

1,3

 

 

 

7,1

 

 

 

 

 

 

 

 

a

5,4

 

,

b

3,5

.

 

6,9

 

 

 

8,2

 

 

 

 

 

 

Для хранения векторов используйте массивы а и b. Введите массив а в командной строке, используя квадратные скобки и разделяя элементы вектора точкой с запятой:

27

» a = [1.3; 5.4; 6.9]

a =

1.3000

5.4000

6.9000

Поскольку введенное выражение не завершено точкой с запятой, то пакет MATLAB автоматически вывел значение переменной а. Введите теперь второй вектор

» b = [7.1; 3.5; 8.2];

Для нахождения суммы векторов используется знак +. Вычислите сумму, запишите результат в массив с и выведите его элементы в командное окно:

» с = а + b

с =

8.4000

8.9000

15.1000

Узнайте размерность и размер массива а при помощи встроенных функций ndims и size:

» ndims(a)

ans =

2

» size(a)

ans = 3 1

28

Итак, вектор а хранится в двухмерном массиве а с размерностью три на один (вектор-столбец из трех строк и одного столбца). Аналогичные операции можно проделать и для массивов b и c. Поскольку числа в пакете

MATLAB представляются в виде двухмерного массива один на один, то при сложении векторов используется тот же знак плюс, что и для сложения чисел.

Ввод вектор-строки осуществляется в квадратных скобках, однако элементы следует разделять пробелами или запятыми. Операции сложения, вычитания и вычисление элементарных функций от вектор-

строк производятся так же, как и с вектор-столбцами, в результате получаются вектор-строки того же размера, что и исходные. Например:

» s1 = [3 4 9 2] s1 =

3 4 9 2

» s2 = [5 3 3 2] s1 =

5 3 3 2

» s3 = s1 + s2 s3 =

8 7 12 4

Замечание 3

Если размеры векторов, к которым применяется сложение или вычитание, не совпадают, то выдается сообщение об ошибке.

Естественно, для нахождения разности векторов следует применять знак минус, с умножением – сложнее.

29

Введите две вектор-строки:

»v1 = [2 -3 4 1];

»v2 = [7 5 -6 9];

Операция .* (не вставляйте пробел между точкой и звездочкой!)

приводит к поэлементному умножению векторов одинаковой длины. В

результате получается вектор с элементами, равными произведению соответствующих элементов исходных векторов:

» u = v1.*v2 u =

14 -15 -24 9

При помощи .^ осуществляется поэлементное возведение в степень:

» р = v1.^2 p =

4 9 16 1

Показателем степени может быть вектор той же длины, что и возводимый в степень. При этом каждый элемент первого вектора возводится в степень, равную соответствующему элементу второго вектора:

» p = vl.^v2

Р =

128.0000 -243.0000 0.0002 1.0000

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]