Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Общий файл весия 1.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.38 Mб
Скачать

2.7 Работа с массивами данных

Массив - упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя. Массивы различаются по числу размерностей или измерений: одномерные, двумерные многомерные. Размером массива называют число элементов, в каждом измерении. Доступ к элементам осуществляется при помощи индекса. В MATLAB нумерация элементов массивов начинается с единицы. Это значит, что индексы должны быть больше или равны единице. Вектор-строка, матрица или тензор являются математическими объектами, а одномерные, двумерные или многомерные массивы — способы хранения этих объектов в компьютере. Вектор может быть записан в столбик (вектор-столбец) и в строку (вектор-строка). Векторы-столбцы и векторы-строки будем называть просто векторами. Векторы и матрицы обозначаются курсивом, а соответствующие им массивы прямым шрифтом, например: «вектор а содержится в массиве а».

2.8 Векторы-столбцы, векторы-строки, сложение и вычитание векторов.

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

>> a = [1, 2, 3, 4]

a =

1 2 3 4

Или:

>> a=[1 2 3 4]

a =

1 2 3 4

В этом случае мы получаем векторы-строки. Чтобы получить вектор-столбец надо отделять элементы «;»:

a=[1; 2; 3; 4]

a =

1

2

3

4

Векторы можно транспонировать с помощью знака апострофа «’»:

a'

ans =

1 2 3 4

(a')'

ans =

1

2

3

4

Если элементы массива, отличаются на постоянную величину, он может быть задан по схеме: «имя»= «начальное значение»: «шаг»: «конечное значение». Все задаваемые числовые значения могут быть любыми, в том числе дробными и отрицательными, последний элемент массива не превосходит конечного значения, по умолчанию принимается шаг равным единице, параметры массива могут быть заключены в квадратные скобки:

>> b=1:2:8

b =

1 3 5 7

>> b=1:2:9

b =

1 3 5 7 9

>> b=1:2.1:9

b =

1.0000 3.1000 5.2000 7.3000

>> b=1:8

b =

1 2 3 4 5 6 7 8

>> a = [1:2:18]

a =

1 3 5 7 9 11 13 15 17

Так же может быть задан (провозглашён) массив нулевого размера:

>> c=[]

c =

[]

После перечисленных действий, в рабочей области содержатся:

>> whos

Name Size Bytes Class

a 1x9 72 double array

b 1x8 64 double array

c 0x0 0 double array

Grand total is 17 elements using 136 bytes

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

>> a=1:3

a =

1 2 3

>> b=a+2

b =

3 4 5

>> c=a+b

c =

4 6 8

>> c'-a'

ans =

3

4

5

>> b=a*2

b =

2 4 6

>> b=a/5

b=

0.2000 0.4000 0.6000

Если размеры складываемых или вычитаемых векторов не совпадают, выдаётся сообщение об ошибке. Размерность и размеры массива можно узнать с помощью специальных встроенных функций ndims и size:

>> a=[1:1:5]

a =

1 2 3 4 5

>> ndims(a)

ans =

2

>> ndims(a')

ans =

2

>> size(a)

ans =

1 5

>> size(a')

ans =

  1. 1

Векторы a и a’ хранятся в двумерном массиве, вектор a имеет размерность 1 на 5 (1 строку и 5 столбцов) вектор a’ – размерность 5 на 1. Для определения длины вектора служит функция length:

>> length(a)

ans =

5

Из нескольких векторов можно составить один с помощью []. Если имена объединяемых векторов перечислить через «;», то объединяются столбцы, ели через пробел или запятую – строки:

>> c=[a;b]

c =

1 2 3 4 5

1 2 3 4 5

>> c=[a b]

c =

1 2 3 4 5 1 2 3 4 5.

Обратиться к элементу массива можно, указав его номер в круглых скобках:

>> c(7)

ans =

2

Из элементов вектора можно собрать новый вектор:

>> nov=[c(7),c(4),c(8)]

nov =

2 4 3.

Доступ к нескольким элементам вектора может быть осуществлён с помощью другого вектора, играющего роль набора индексов:

c =

1 2 3 4 5 1 2 3 4 5

>> i=[2 4 6 8 1 3];

>> nov=c(i)

nov =

2 4 1 3 1 3.

Обращение к последовательным элементам вектора осуществляется с помощью знак «:»:

>> c(3:7)=0

c =

1 2 0 0 0 0 0 3 4 5

>> c=[c(1:2) c(8:10)]

c =

1 2 3 4 5.

Для работы с элементами векторов в системе имеются специальные функции:

1) функция prod – перемножает элементы вектора:

>> b=[1:1:5]

b =

1 2 3 4 5

>> prod(b)

ans =

120

2) функция sum находит сумму элементов вектора:

>> sum(b)

ans =

15

3) функции min и max находят минимальное и максимальное значение элементов вектора, а если эта функция вызывается с двумя выходными аргументами, то второй аргумент указывает номер найденного элемента, если вектор содержит несколько одинаковых экстремальных элементов, то указывается первый:

>> c

c =

1 4 9 16 25 1 4 9 16 25

>> max(c)

ans =

25

>> [m,n]=max(c)

m =

25

n =

5

4) функция sort упорядочивает элементы вектора по возрастанию, если функция вызывается с двумя выходными аргументами, то во втором содержится вектор индексов исходного массива:

sort(c)

ans =

1 1 4 4 9 9 16 16 25 25

>> -sort(-c)

ans =

25 25 16 16 9 9 4 4 1 1.

c =

1 4 9 16 25 1 4 9 16 25

>> [m,i]=sort(c)

m =

1 1 4 4 9 9 16 16 25 25

i =

1 6 2 7 3 8 4 9 5 10

Замечание

Дополнительные функции содержатся в специализированных библиотеках инструментов (ToolBoox). Команда help stats выводит список статистических функций, доступных в MatLab, если установка MatLab включает Statistics Toolboox.