Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика матлаб (Мет пособие).doc
Скачиваний:
101
Добавлен:
15.06.2014
Размер:
338.43 Кб
Скачать

Начальное_значение: Шаг: Конечное_значение

Если шаг не задан, то он принимается равным 1 или –1 в зависимости от того, больше конечное значение начального значения или меньше. Приведем несколько примеров применения и использования этого оператора.

» 1:3

ans =

  1. 2 3

» i = 0:2:6

i =

0 2 4 6

» j = 6:-2:0

j =

  1. 4 2 0

» t = 0:pi/2:2*pi;

» t

t =

  1. 1.5708 3.1416 4.7124 6.2832

В качестве примера использования такой регулярной последовательности чисел введем выражение:

» y = sin (t);

Если "переменная" t была определена описанным выше способом, т.е. как последовательность числовых значений, то и "переменная" y будет иметь вид последовательности соответствующих значений функции. В традиционных математических конструкциях именно такой смысл вкладывается в выражение функции, когда ее аргумент принимает множество значений. С другой стороны, в традиционных языках программирования использование подобного выражения в условиях, когда аргумент (параметр функции) имеет какой-либо иной тип, кроме вещественного (или целого) числа, привело бы к ошибке. В системе MATLAB , как уже отмечалось, по умолчанию предполагается, что каждая переменная – это вектор или матрица, и, следовательно, каждая функция (или оператор) определена для матричных аргументов. Особенно неожиданно этот эффект может проявиться при использовании самых простых арифметических операций. В подтверждение приведем пример использования оператора деления.

» t = 0:pi/2:2*pi;

» y=sin(t)

y =

0 1.0000 0.0000 -1.0000 -0.0000

» z=sin(t)/t

z =

-0.0424

» z=sin(t)./t

Warning: Divide by zero.

z =

NaN 0.6366 0.0000 -0.2122 -0.0000

»

Как показывает результат вычислений, выражение z=sin(t)/t вовсе не означает по членное деление двух массивов. Для этих целей существует другой оператор - ./, результат применения которого показан в приведенной сессии. Здесь можно увидеть также предупреждение о недопустимости деления на 0 и символьное обозначения результата такого деления (0/0) –NaN (Not-a-Number).

Сохранение и считывание данных

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

Для сохранения рабочей области служит команда save filename, после выполнения которой вся рабочая область записывается на диск в бинарном формате с именемfilename.mat. Для загрузки рабочей области ранее проведенной (и сохраненной) сессии служит командаload filename. Те же самые действия можно выполнить, выбирая соответствующие опции основного менюФайл.

Следует отметить, что команда save сохраняет значения всех переменных и определений в сессии, но не всего текста сессии. В этом, как правило, нет необходимости. Однако если она возникает, то для этой цели можно воспользоваться командойdiary filenane.По этой команде производится запись на диск в виде текстового файла с именемfilename всех строк ввода и вывода. Для приостановки и возобновления записи в файл служат командыdiary off иdiary on соответственно. Чередуя эти команды можно записать только окончательные определения и команды, исключив сообщения об ошибках, переопределения переменных и т.п. Используйте эти команды при выполнении практических заданий.

Вообще говоря, сохранение результатов работы можно добиться и другими средствами, если воспользоваться встроенными в систему редактором и отладчиком. Полученные таким образом документы сохраняются в текстовом формате с расширением .m. Еще большие возможности в части документирования результатов работы предоставляет ППП Notebook, о котором речь пойдет несколько позже.