Компания ALT Linux
Опубликован: 12.03.2015 | Доступ: свободный | Студентов: 576 / 64 | Длительность: 20:55:00
Лекция 2:

Основы работы

2.6 Массивы

Как правило, массивы используют для хранения и обработки множества однотипных данных. Вместо создания переменной для хранения каждого данного создают один массив, где каждый элемент имеет порядковый номер. Таким образом, массив — множественный тип данных, состоящий из фиксированного числа элементов одного типа. Как и любой другой переменной, массиву должно быть присвоено имя.

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

Если возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, необходимо использовать двумерные массивы (матрицы). Для доступа к данным, хранящимся в таком массиве, необходимо указать имя массива и два индекса, первый должен соответствовать номеру строки, а второй — номеру столбца, в котором хранится необходимый элемент.

Значение нижней границы индексации в Octave равно единице. Индексы могут быть только целыми положительными числами или нулём.

Самый простой способ задать одномерный массив в Octave имеет вид имя массива = X_n : dX : X_k, где X_nзначение первого элемента массива, X_kзначение последнего элемента массива, dX — шаг, с помощью которого формируется каждый следующий элемент массива, то есть значение второго элемента составит X_n + dX, третьего — X_n + dX+dX, и так далее до X_k

Если параметр dX в конструкции отсутствует: имя массива = X_n : X_k, это означает, что по умолчанию он принимает значение равное единице, то есть каждый следующий элемент массива равен значению предыдущего плюс один.

Примеры создания массивов:

	
>>> A=1:5
A = 1 2 3 4 5
>>> B=2:2:10
B = 2 4 6 8 10
>>> xn= -3.5; xk = 3.5; dx = 0.5;
>>> X=xn : dx : xk
X =
Columns 1 through 8 :
-3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0
Columns 9 through 1 5 :
0.5  1.0	  1.5  2.0  2.5  3.0  3.5

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

	
>>> xn= -3.5; xk = 3.5; dx = 0.5;
>>> X=xn : dx : xk;
>>> Y=cos (X/2)
Y =
Columns 1 through 7 :
-0.1782  0.0707  0.3153  0.5403  0.7316  0.8775  0.9689
Columns 8 through 1 5 :
1.0  0.9689  0.8775  0.7316  0.5403  0.3153  0.0707  -0.1782
>>> B= 2 : 2 : 10;C=sqrt (B)
C = 1.4142  2.0000  2.4495  2.8284  3.1623
>>> -2:2
ans = -2  -1  0  1  2
>>> ans*2-pi /2
ans = -5.5708  -3.5708  -1.5708  0.4292  2.4292

Векторы и матрицы в Octave можно вводить поэлементно. Так для определения вектора–строки следует ввести имя массива, а затем, после знака присваивания, в квадратных скобках через пробел или запятую, перечислить элементы массива:

	
>>> x=[2  4  6  8  10]
x = 2  4  6  8  10
>>> y=[ -1.2  3.4  -0.8  9.1  5.6  -7.3]
y = -1.20000  3.40000  -0.80000  9.10000  5.60000  -7.30000

Элементы вектора–столбца вводятся через точку с запятой:

	
>>> X= [1; 3; 5; 7; 9]
X =
	1
	3
	5
	7
	9

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

	
>>> x=[2 4 6 8 1 0 ];
>>> y=[ -1.2  3.4  -0.8  9.1  5.6  -7.3];
>>> x ( 1 )% значение первого элемента массива x
ans = 2
>>> y ( 5 )% значение пятого элемента массива y
ans = 5.6000
>>> x ( 1 ) /2+y ( 3 ) ^2-x (4) /y(5)
ans = 0.21143

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

	
>>> M=[2  4  6; 1  3  5; 7  8  9]
M =
	2  4  6
	1  3  5
	7  8  9
>>> M(1, 2)
ans = 4
>>> M(3, 1)
ans = 7
>>> M(2, 2) /2+M(3,3) ^0.5 -M(1, 1)*5
ans = -5.5000

Подробно работа с векторами и матрицами описана в пятой главе.

Алексей Игнатьев
Алексей Игнатьев

Возможна ли разработка приложения на Octave с GUI?

Евгений Ветчанин
Евгений Ветчанин

Добрый день. Я самостоятельно изучил курс "Введение в Octave" и хочу получить сертификат. Что нужно сднлать для этого? Нужно ли записаться на персональное обучение с тьютором или достаточно перевести деньги?