Массивы

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Создание массивов

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

A := array(0..2, 0..3);
B := array(0..2, 0..3, 0..4)

array(0..2, 0..3, 0..4)

Для двумерных массивов первая область значений задает количество строк, вторая область значений задает количество столбцов. Области значений для индексов массива не обязательно запускаются с 0 или 1:

A := array(3..5, 1..2)

Доступ к записям массива

Чтобы получить доступ к записи массива, используйте скобки или _index:

A := array(0..1, 0..2, [[1, 2, 3], [a, b, c]]);
A[0, 2];
_index(A, 1, 1)

Создайте массив случайных чисел:

A := array(1..3, 1..4, [frandom() $ i = 1..12]);
domtype(A)

Чтобы получить доступ к области значений записей массива, сначала преобразуйте массив в матрицу:

B := matrix(A);
domtype(B)

Используйте области значений индексов, чтобы получить доступ к записям матрицы. Результатом является также матрица.

b := B[1..2,1..3];
domtype(b)

Преобразовывать матричный b к массиву используйте coerce функция:

a := coerce(b, DOM_ARRAY);
domtype(a)

В качестве альтернативы можно индексировать в массив при помощи этой команды:

array(1..2, 1..3,[A[i, j] $ j = 1..3 $ i = 1..2])

Для дальнейших расчетов удалите ABB, и a:

delete A, B, b, a

Работайте с массивами

Массивы MuPAD® поддерживают следующие операции:

  • Присвоение значений к записям массивов

  • Сравнение массивов

MuPAD не поддерживает арифметические операции на массивах.

Можно присвоить значения записям массива:

A := array(0..1, 0..2):
A[0, 0] := 1: A[0, 1] := 2: A[0, 2] := 3:
A[1, 0] := a: A[1, 1] := b: A[1, 2] := c:
A

Также можно ввести значения записей при создании массива:

A := array(0..1, 0..2, [[1, 2, 3], [a, b, c]]);
B := array(1..2, 1..3, 1..5, [[[[i, j, k] $ k=1..5 ]
                               $ j=1..3] $ i=1..2]):
B[2,3,4]

MuPAD принимает вложенные и плоские списки как записи массива:

array([[1, 2, 3], [a, b, c]]);
array(1..2, 1..3, [1, 2, 3, a, b, c]);

При сравнении массивов MuPAD сравнивает и индексы и значения записей. По умолчанию индексы запускаются с 1:

A1 := array([[1, 2, 3], [a, b, c]]):
A2 := array(0..1, 0..2, [1, 2, 3, a, b, c]):
A3 := array(1..2, 1..3, [1, 2, 3, a, b, c]):
bool(A1 = A2);
bool(A1 = A3)

Вы не можете использовать арифметические операции на массивах:

A1 + A2
Error: Invalid operand. [_plus]

Чтобы использовать арифметические операции, преобразуйте массивы в матрицы. Для числовых данных также можно использовать Массивы с Аппаратными Числами с плавающей запятой.

Замените или удалите записи массива

Чтобы заменить запись массива, получите доступ к записи ее индексом и присвойте новое значение записи:

A := array(0..1, 0..2, [[1, 2, 3], [a, b, c]]):
A[0, 2] := NewValue:
A

Чтобы удалить записи из массива, используйте delete команда. Когда вы удаляете запись массива, размерности массива не изменяются. MuPAD изменяет входное значение, которое вы удаляете к NIL:

A := array(0..1, 0..2, [[1, 2, 3], [a, b, c]]):
delete(A[0, 2]):
A

Массивы с аппаратными числами с плавающей запятой

Чтобы создать массив аппаратных чисел с плавающей запятой, используйте hfarray команда. Массив может содержать комплексные числа с плавающей запятой:

A := hfarray(0..1, 0..2, [[1, 2/3, I/3], [I, exp(1), PI]])

Массивы аппаратных чисел с плавающей запятой используют меньше памяти, чем регулярные массивы и матрицы. Можно использовать основные арифметические операции на этих массивах:

A + 2*A