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

lection_matlab_all / matlab_3

.pdf
Скачиваний:
18
Добавлен:
27.05.2015
Размер:
228.83 Кб
Скачать

Использование данных в виде массивов

Комплексные числа

Библиотека математических функций

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

Например, командой

>> x = rand(2, 5, 3)

будет создан массив (трёхмерный) случайных чисел размером 2х5х3 и связан с переменной х.

Примечание: функция rand возвращает псевдослучайные числа с равномерным распределением в интервале (0, 1).

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

a(i), Х(i, j, 3), myArray(p+q, 1)

Важно! Индекс элемента массива должен быть положительным целым числом (индексация начинается с 1!!!) или результатом вычисления математического или логического выражения и не должен выходить за пределы массива.

Примечание: скалярная переменная — тоже массив размера 1 x 1 x 1 x 1 x 1 x 1 x … x 1 ;)

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

>>x = 10; % присвоено скалярное значение

>>x = linspace(0, 10, 11); % х связана с одномерным массивом

>>x = ones(5, 5); % х связана с двумерным массивом

Все эти операции могут быть выполнены последовательно друг за другом в любом пордяке. После каждой из них размерность и размеры массива изменяются.

>> x = linspace(0, 10, 11)

Общий синтаксис: linspace(а, b, n)

- формирует линейный массив размера 1хn такой, что x(1) = a, x(n) = b, x(k) = a + (k-1)*(b-a)/(n-1)

т.е. все элементы массива распределены равномерно между a и b.

>> x = ones(5, 5)

Общий синтаксис: ones(n, m, p, q, ...)

- создаёт массив из единиц размера n х m х p х q...

Похожие функции:

zeros(n, m, p, q, …)

- создаёт массив из нулей размера n х m х p х q...

rand(n, m, p, q, …)

- создаёт массив размера n х m х p х q... из псевдослучайных чисел с равномерным распределением в интервале (0, 1)

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

>> a = [-1 5 2 -3 10]

создаст массив-строку с элементами -1, 5, 2, -3, 10.

Создать одномерный массив-вектор можно, используя операцию транспонирования «’» (символ одиночная кавычка) из массива-строки:

b = a’

или с помощью операции объединения, используя группирующие скобки [] и разделитель «;» (символ точка с запятой)

с = [6; -1; 7; 8; 0].

Операция объединения позволяет также дополнять массивы новыми элементами или явно конструировать многомерные массивы. После команды

>> а = [21, -3, a, 5]

массив а длины 4 из прошлого примера превратится в массив длины 7 с элементами

21 -3 -1 5 2 -3 10 5.

Командой

>> [ones(1, 20) rand(1, 3) zeros(1, 4)]

будет создан безымянный массив из 20 единиц, 3 случайных чисел и 4 нулей

Пример формирования массивов с помощью объединений:

>> a = rand(2, 2)

 

 

a =

 

 

0.959492426392903

0.035711678574190

 

0.655740699156587

0.849129305868777

 

>>b = ones(1, 3); c = zeros(1, 2)

 

>>d = [[a c']; b]

 

 

d =

 

 

0.959492426392903

0.035711678574190

0

0.655740699156587

0.849129305868777

0

1.000000000000000

1.000000000000000

1.000000000000000

В MatLab можно производить основные математические операции +, -, *, / и возведение в степень ^ над массивами, как над обычными переменными без привычных для других языков программирования циклических конструкций.

При сложении и вычитании массивов их размеры и размерности должны быть согласованы, т.е. для вычисления a+b и a-b необходимо, чтобы a и b имели одинаковые размеры (n x m х p x q x …).

Соседние файлы в папке lection_matlab_all