Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Списки представляют упорядоченные структуры данных. Списки могут содержать произвольные объекты MuPAD®. Например, числа, символы, строки или функции могут быть записями списка. Чтобы создать список, разделите объекты MuPAD запятыми и заключите структуру в скобках:
list := [a, b, c, d]
Кроме того, можно создать последовательность и преобразовать ее в список. Чтобы преобразовать последовательность в список, заключите последовательность в скобках. Как ярлык для создания последовательности, используйте генератор последовательности $
или его функциональная форма _seqgen
. Заключите последовательность в скобки:
[i*(i-1) $ i = 1..10]; [i $ 10]
Список может содержать списки как записи:
list1 := [1, list, 2]
Список может быть пустым:
empty_list := []
MuPAD не сглаживается, списки как он сглаживает последовательности. Можно создать вложенные списки:
list1 := [1, 2]: list2 := [5, 6]: list3 := [list1, 3, 4, list2]
Существует два способа получить доступ к конкретным записям списка их индексами:
В целом эти два индекса записи структуры данных могут отличаться. Для списков внутренний порядок совпадает с тем, что вы видите на экране:
list := [a, b, c, d, e, f]: list[2]; _index(list, 3..5); op(list, 2); op(list, 3..5)
Чтобы получить доступ к записи целые числа от конца списка, используйте отрицательные числа:
list := [a, b, c, d, e, f]: list[-2]
Если вы используете индексируемое присвоение, не создавая список, MuPAD генерирует таблицу вместо списка:
L[1] := x: L
Списки MuPAD поддерживают следующие операции:
Проверка, что список содержит конкретный объект
Используя список как функция в вызове функции
Применение функции ко всем записям списка
Извлечение записей списка
Деление списка согласно конкретным свойствам его записей
Арифметические операции в списках
Чтобы проверять, принадлежит ли объект списку, используйте команду contains
. Команда возвращает положение первого вхождения объекта в списке. Если объект не принадлежит списку, contains
возвращает 0
:
list := [(i-5)/7 $ i = 10..20]; contains(list, 1); contains(list, -1)
Если вы используете список в качестве функции в вызове функции, MuPAD возвращает список соответствующих вызовов функции:
[sin, cos, tan, f](x); [sin, cos, tan, f](0.1)
Чтобы применить функцию ко всем записям списка, используйте функциональный map
:
map([x, 0.1, 1/5, PI], sin); map([x, 0.1, 1/5, PI], `+`, a, 1)
Чтобы извлечь записи с конкретными свойствами из списка, используйте команду select
:
select([i $ i = 1..20], isprime)
Чтобы разделить список на три списка согласно конкретным свойствам, используйте команду split
:
split([i $ i = 1..10], isprime)
Получившиеся три списка содержат:
Записи с необходимыми свойствами
Записи без необходимых свойств
Записи, для которых необходимые свойства неизвестны.
MuPAD поддерживает следующие арифметические операции в списках: сложение, вычитание, умножение, деление и возведение в степень. Списки, с которыми вы работаете, должны содержать равное количество записей. MuPAD формирует новый список, содержащий записи существующих списков, объединенных попарно:
list1 := [a, b, c]: list2 := [d, e, f]: list1 + list2; list1*list2; list1^list2
Когда вы комбинируете список и скаляр, MuPAD комбинирует скаляр с каждой записью списка. Например:
list1 := [a, b, c]: list1 + a; list1^5; list1*(a + 5)
Объединение скаляра и списка отличается от объединения скаляра и матрицы.
Когда вы добавляете скаляр в матрицу, MuPAD добавляет скаляр, умноженный на единичную матрицу к исходной матрице. Например, задайте матричный M
можно следующим образом. Добавьте переменную a
матричный M
:
M := matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]): M + a
Теперь задайте строки матричного M
следующими тремя списками. Добавьте переменную a
в каждый список. MuPAD добавляет переменную a
в каждую запись трех списков:
list1 := [1, 2, 3]: list2 := [4, 5, 6]: list3 := [7, 8, 9]: matrix([list1 + a, list2 + a, list3 + a]);
Когда вы комбинируете скаляр и пустой список, результатом является пустой список:
[] + 2
MuPAD позволяет вам объединить вложенные списки:
[[a, b], c, d] + 1; [[a, b], c, d] + [1, 2, 3]
Чтобы объединить списки с неравными количествами записей, используйте команду zip
. По умолчанию получившийся список имеет то же количество записей как самый короткий список:
list1 := [a, b]: list2 := [d, e, f]: zip(list1, list2, _plus); zip(list1, list2, _mult); zip(list1, list2, _power)
Чтобы произвести список с количеством записей, равных более длинному списку, используйте значение по умолчанию в качестве дополнительного параметра:
zip(list1, list2, _plus, 100)
Чтобы добавить новые записи в конец списка, используйте команду append
или .
(точка) оператор:
list := [a, b, c]: list := append(list, d, e, f); list := list.[1, 2, 3, 4]
Чтобы конкатенировать списки, используйте оператор '.
' (точка) или ее функциональная форма _concat
:
list1 := [a, b, c]: list2 := [t^3 $ t = 0..3]: list3 := list1.list2; list4 := _concat(list2, list1)
Можно заменить запись списка:
list := [a, b, c, d, e]: list[1] := newEntry: list[2] := [1, 2, 3]: list[-1] := matrix([[1, 2, 3], [5, 6, 7]]): list
Чтобы удалить запись из списка, используйте команду delete
:
list := [a, b, c, d, e, f]: delete list[-1]; list