вывод ::
Печать объектов в табличной форме
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
output::tableForm(obj
, <separator
>, options
)
output::tableForm(obj)
распечатывает элементы данного объекта obj
в табличной форме.
Ширина таблицы и количество столбцов зависят от размера TEXTWIDTH
(см. опции Width
и Columns
). Ширина столбца зависит от самой широкой записи в этом столбце.
output::tableForm
определяет количество столбцов, что общая ширина таблицы помещается в TEXTWIDTH
.
Столбцы разделяются одним пробелом по умолчанию.
Если separator
дан, то он распечатан между каждым столбцом (вместо одного пробела). Добавление пробелов к разделителю заканчивается дополнительно пробел между столбцами. По умолчанию разделитель является одним пробелом.
Если первый аргумент obj
является таблицей или областью, output::tableForm
использует опцию Columns = 2
(два столбца) и разделитель "= "
как значение по умолчанию.
Без опции Sort
объекты преобразованы в строки и затем отсортированы в алфавитном порядке. Чтобы избежать любой сортировки опции, Sort = FALSE
должен быть дан.
Для всех примеров на этой странице мы принимаем TEXTWIDTH
75:
TEXTWIDTH := 75:
Распечатайте некоторые случайные числа в табличной форме:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30])
11647 12826 26280 26292 28315 30908 36523 42073 4682 47334 52640 56426
5829 615 62580 65904 66223 6719 69451 69903 77904 78221 80528 81013
86068 89016 90516 91008 92791 9532
Создаются некоторые случайные строки. Столбцы должны иметь весь одинаковый ширина (Unique
) и быть распечатаны сосредоточенные. Строки не должны быть отсортированы:
output::tableForm([_concat("*" $ random(10)()) $ k = 1..20], Unique, Center, Sort = FALSE)
"********" "******" "*********" "********" "*" "******"
"*********" "*****" "****" "********" "****" "*****"
"*********" "*******" "*******" "******" "**" "****"
Unquoted
опции предотвращает печать кавычек (см. fprint
):
output::tableForm([_concat("*" $ random(10)()) $ k = 1..20], Unique, Center, Sort = FALSE, Unquoted)
******** * ****** ****** **** ****** ** **
***** * **** **** ** ******** ******* **
* *******
Следующий объект является таблицей MuPAD® и должен быть распечатан как таблица с двумя столбцами. Таблица содержит некоторые случайные числа и их сумму цифр:
SEED := -1: T := table(op(map([random(100000000)() $ k = 1..10], proc(X) local Xs, k; begin Xs := expr2text(X); X = _plus(text2expr(substring(Xs, k)) $ k = 1..length(Xs)) end_proc))): output::tableForm(T)
19962580 = 40
25878221 = 35
37777904 = 44
41281013 = 20
43856426 = 38
46169451 = 36
66926292 = 42
80330908 = 31
89306719 = 43
94386068 = 44
Области также распечатаны в этой форме по умолчанию:
output::tableForm(newDomain("Test", table("type" = "Test", "info" = "only a testdomain")))
"info" = "only a testdomain"
"key" = "Test"
"type" = "Test"
Следующая таблица должна состоять из четырех столбцов:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], Columns = 4)
11647 12826 26280 26292
28315 30908 36523 42073
4682 47334 52640 56426
5829 615 62580 65904
66223 6719 69451 69903
77904 78221 80528 81013
86068 89016 90516 91008
92791 9532
Следующая таблица должна иметь максимальную ширину символов 50
:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], Width = 50)
11647 12826 26280 26292 28315 30908 36523 42073
4682 47334 52640 56426 5829 615 62580 65904
66223 6719 69451 69903 77904 78221 80528 81013
86068 89016 90516 91008 92791 9532
delete T:
Следующие примеры показывают различное использование разделителей. Сначала один один разделитель:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], "|")
11647|12826|26280|26292|28315|30908|36523|42073|4682 |47334|52640|56426
5829|615 |62580|65904|66223|6719 |69451|69903|77904|78221|80528|81013
86068|89016|90516|91008|92791|9532
Теперь список с символом разделителя между каждым столбцом. Если список слишком короток, символы используются с начала списка снова и т.д.:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], ["|", " ", " "])
11647|12826 26280 26292|28315 30908 36523|42073 4682 47334|52640 56426
5829|615 62580 65904|66223 6719 69451|69903 77904 78221|80528 81013
86068|89016 90516 91008|92791 9532
Только первое оба colunms должно быть разделено вертикальной строкой:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], ["|", " " $ 10])
11647|12826 26280 26292 28315 30908 36523 42073 4682 47334 52640 56426
5829|615 62580 65904 66223 6719 69451 69903 77904 78221 80528 81013
86068|89016 90516 91008 92791 9532
Дополнительно символ может быть добавлен к каждой записи:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], ["|", " " $ 10], Append = ",")
11647,|12826, 26280, 26292, 28315, 30908, 36523, 42073, 4682, 47334, 52640,
56426,|5829, 615, 62580, 65904, 66223, 6719, 69451, 69903, 77904, 78221,
80528,|81013, 86068, 89016, 90516, 91008, 92791, 9532,
Следующие примеры показывают различное использование сортировки. Без опции Sort
числа сортируются как строки в лексикографическом порядке:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30])
11647 12826 26280 26292 28315 30908 36523 42073 4682 47334 52640 56426
5829 615 62580 65904 66223 6719 69451 69903 77904 78221 80528 81013
86068 89016 90516 91008 92791 9532
Sort = FALSE
избегает любой сортировки:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], Sort = FALSE)
30908 6719 26292 56426 81013 69451 77904 78221 86068 62580 47334 12826
9532 5829 28315 65904 42073 80528 4682 52640 69903 92791 36523 26280
89016 91008 615 66223 90516 11647
Любая сортировка может быть сделана со специальной заданной процедурой, например, отсортировать числа в обратном порядке:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], Sort = ((X,Y) -> Y < X))
92791 91008 90516 89016 86068 81013 80528 78221 77904 69903 69451 66223
65904 62580 56426 52640 47334 42073 36523 30908 28315 26292 26280 12826
11647 9532 6719 5829 4682 615
Наконец определяемой пользователем процедуре дают, это сортирует числа по сумме их возрастания цифр:
SEED := -1: output::tableForm([random(100000)() $ k = 1..30], Sort = proc(X,Y) local crossfoot; begin crossfoot := proc(X) local Xs, k; begin Xs := expr2text(X); _plus(text2expr(substring(Xs, k)) $ k = 1..length(Xs)) end_proc; crossfoot(X) < crossfoot(Y) end_proc)
615 81013 42073 52640 91008 26280 36523 11647 12826 66223 9532 28315
30908 4682 78221 26292 90516 47334 62580 56426 80528 6719 5829 65904
89016 69451 77904 69903 92791 86068
|
Список, набор или таблица любого MuPAD возражают или область |
|
Строка между столбцами |
|
Строки распечатаны без кавычек Выходная функция |
|
Все столбцы имеют ту же ширину Все столбцы распечатаны с той же шириной, самый широкий столбец определяет ширину каждого столбца. |
|
Опция, заданная как Максимальная ширина таблицы установлена в |
|
Опция, заданная как Номер столбцов определяется к Примечание
|
|
Записи каждого столбца выравниваются лево-выровненные по ширине, сосредоточили или выровняли по ширине. |
|
Опция, заданная как Записи сортируются с данной процедурой. Записи могут быть распечатаны неотсортированные, когда |
|
Опция, заданная как Выведите в файл. Если |
|
Возвратитесь как строка, которая может быть распечатана Строка содержит разрывы строки и может быть распечатана с |
|
Опция, заданная как Символьная строка добавлена к каждой записи списка |
Пустой объект null()