Иллюстрированный самоучитель по Matlab


Применение оператора: (двоеточие)



Очень часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений абсциссы при построении графиков. Для этого в MATLAB используется оператор : (двоеточие):

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

Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если Шаг не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, — выдается сообщение об ошибке. Примеры применения оператора : даны ниже:

» 1:5

ans =

12345

»

i=0:2:10 

i =

0 2 4 6 8 10 

» j=10:-2:2 

j =10 8 6 4 2 

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

» V 

V =

0 1.5708 3.1416 4.7124 6.2832

» X= l:-.2:0 

X=

1.0000 0.8000 0.6000 0.4000 0.2000 0 

» 5:2

ans=

Empty matrix:1-by-0


Как отмечалось, принадлежность MATLAB к матричным системам вносит коррективы в назначение операторов и приводит при неумелом их использовании к казусам. Рассмотрим следующий характерный пример:

» х=0:5

х=

0 1 2 3 4 5 

» cos(x) 

ans =

1.0000 0.5403 -0.4161 -0.9900 -0.6536 0.2837 

» sin(x)/x 

ans = -0.0862


Вычисление массива косинусов здесь прошло корректно. А вот вычисление массива значений функции

sin(x)/x

дает неожиданный, на первый взгляд, эффект — вместо массива с шестью элементами вычислено единственное значение!

Причина «парадокса» здесь в том, что оператор / вычисляет отношение двух

матриц, векторов

или многомерных

массивов.

Если они одной размерности, то результат будет одним числом, что в данном случае и выдала система. Чтобы действительно получить вектор значений sin(x)

/x,

надо использовать специальный оператор

поэлементного

деления массивов — . /. Тогда будет получен массив чисел:

» sin(x)./x

Warning: Divide by zero.




Начало  Назад  Вперед



Книжный магазин