Создание tall array
t = tall(ds)
t = tall(A)
создает длинный массив сверху datastore t
= tall(ds
)ds
.
Если ds
является datastore для табличных данных (так, чтобы read
и методы readall
datastore возвратили таблицы), то t
является длинной таблицей. Табличные данные являются данными, которые располагаются прямоугольным способом с каждой строкой, имеющей то же количество записей.
В противном случае t
является высоким массивом ячеек.
Преобразуйте datastore в длинный массив.
Во-первых, создайте datastore для набора данных. Можно задать или местоположение всего или файла прямого доступа для набора данных с помощью datastore(location)
, чтобы создать datastore. Аргумент location
может задать:
Один файл, такой как 'airlinesmall.csv'
Несколько файлов с тем же расширением, таких как '*.csv'
Целая папка файлов, таких как 'C:\MyData'
datastore
также имеет несколько опций, чтобы задать формат файла и свойства текстового формата, когда вы создаете datastore.
Создайте datastore для набора данных airlinesmall.csv
. Обработайте значения 'NA'
как недостающие данные так, чтобы они были заменены значениями NaN
. Выберите небольшое подмножество переменных, чтобы работать с.
varnames = {'ArrDelay', 'DepDelay', 'Origin', 'Dest'}; ds = datastore('airlinesmall.csv', 'TreatAsMissing', 'NA', ... 'SelectedVariableNames', varnames);
Используйте tall
, чтобы создать длинный массив для данных в datastore. Поскольку данные в ds
являются табличными, результатом является длинная таблица. Если данные не являются табличными, то tall
создает высокий массив ячеек вместо этого.
T = tall(ds)
T = Mx4 tall table ArrDelay DepDelay Origin Dest ________ ________ ______ _____ 8 12 'LAX' 'SJC' 8 1 'SJC' 'BUR' 21 20 'SAN' 'SMF' 13 12 'BUR' 'SJC' 4 -1 'SMF' 'LAX' 59 63 'LAX' 'SJC' 3 -2 'SAN' 'SFO' 11 -1 'SEA' 'LAX' : : : : : : : :
Можно использовать много общих операторов MATLAB® и функций, чтобы работать с длинными массивами. Чтобы видеть, работает ли функция с длинными массивами, проверяйте раздел Extended Capabilities в нижней части страницы ссылки на функцию.
Преобразуйте datastore в длинную таблицу, вычислите ее размер с помощью задержанного вычисления, и затем выполните вычисление и возвратите результат в памяти.
Во-первых, создайте datastore для набора данных airlinesmall.csv
. Обработайте значения 'NA'
как недостающие данные так, чтобы они были заменены значениями NaN
. Установите текстовый формат нескольких столбцов так, чтобы они были считаны как массив ячеек из символьных векторов. Преобразуйте datastore в длинную таблицу.
ds = datastore('airlinesmall.csv', 'TreatAsMissing', 'NA'); ds.SelectedFormats{strcmp(ds.SelectedVariableNames, 'TailNum')} = '%s'; ds.SelectedFormats{strcmp(ds.SelectedVariableNames, 'CancellationCode')} = '%s';
T = tall(ds)
T = Mx29 tall table Year Month DayofMonth DayOfWeek DepTime CRSDepTime ArrTime CRSArrTime UniqueCarrier FlightNum TailNum ActualElapsedTime CRSElapsedTime AirTime ArrDelay DepDelay Origin Dest Distance TaxiIn TaxiOut Cancelled CancellationCode Diverted CarrierDelay WeatherDelay NASDelay SecurityDelay LateAircraftDelay ____ _____ __________ _________ _______ __________ _______ __________ _____________ _________ _______ _________________ ______________ _______ ________ ________ ______ _____ ________ ______ _______ _________ ________________ ________ ____________ ____________ ________ _____________ _________________ 1987 10 21 3 642 630 735 727 'PS' 1503 'NA' 53 57 NaN 8 12 'LAX' 'SJC' 308 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 26 1 1021 1020 1124 1116 'PS' 1550 'NA' 63 56 NaN 8 1 'SJC' 'BUR' 296 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 23 5 2055 2035 2218 2157 'PS' 1589 'NA' 83 82 NaN 21 20 'SAN' 'SMF' 480 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 23 5 1332 1320 1431 1418 'PS' 1655 'NA' 59 58 NaN 13 12 'BUR' 'SJC' 296 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 22 4 629 630 746 742 'PS' 1702 'NA' 77 72 NaN 4 -1 'SMF' 'LAX' 373 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 28 3 1446 1343 1547 1448 'PS' 1729 'NA' 61 65 NaN 59 63 'LAX' 'SJC' 308 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 8 4 928 930 1052 1049 'PS' 1763 'NA' 84 79 NaN 3 -2 'SAN' 'SFO' 447 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN 1987 10 10 6 859 900 1134 1123 'PS' 1800 'NA' 155 143 NaN 11 -1 'SEA' 'LAX' 954 NaN NaN 0 'NA' 0 NaN NaN NaN NaN NaN : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Отображение длинной таблицы указывает, что MATLAB® еще не знает, сколько строк данных находится в таблице.
Вычислите размер длинной таблицы. Начиная с вычисления размера длинного массива требует полного прохода через данные, MATLAB сразу не вычисляет значение. Вместо этого как большинство операций с длинными массивами, результатом является неоцененный длинный массив, значения которого и размер в настоящее время неизвестны.
s = size(T)
s = 1x2 tall double row vector ? ?
Используйте функцию gather
, чтобы выполнить задержанное вычисление и возвратить результат в памяти. Результат, возвращенный size
, тривиально маленький 1 2 вектор, который умещается в памяти.
sz = gather(s)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 1.5 sec Evaluation completed in 1.7 sec
sz = 1×2
123523 29
Если вы используете gather
на неуменьшаемом длинном массиве, то результат не может уместиться в памяти. Если вы не уверены, может ли результат, возвращенный gather
, уместиться в памяти, используйте gather(head(X))
или gather(tail(X))
, чтобы принести только небольшую часть результата вычисления в память.
Создайте массив в оперативной памяти случайных чисел, и затем преобразуйте его в длинный массив. Создание длинных массивов от массивов в оперативной памяти полезно для отладки или прототипирования новых программ.
A = rand(100,4); tA = tall(A)
tA = 100x4 tall double matrix 0.8147 0.1622 0.6443 0.0596 0.9058 0.7943 0.3786 0.6820 0.1270 0.3112 0.8116 0.0424 0.9134 0.5285 0.5328 0.0714 0.6324 0.1656 0.3507 0.5216 0.0975 0.6020 0.9390 0.0967 0.2785 0.2630 0.8759 0.8181 0.5469 0.6541 0.5502 0.8175 : : : : : : : :
ds
Введите datastoreВведите datastore, заданный как объект datastore. Используйте функцию datastore
, чтобы создать объект datastore для вашего набора данных.
Длинные массивы работают только с хранилищами данных, которые детерминированы. Таким образом, если вы используете read
на datastore, сбрасываете datastore с reset
, и затем читаете datastore снова, затем возвращенные данные должны быть тем же самым в обоих случаях. Вычисления длинного массива, включающие datastore, который не детерминирован, могут привести к непредсказуемым результатам. Смотрите Выбирают Datastore for File Format или Application для получения дополнительной информации.
Пример: ds = datastore('airlinesmall.csv')
задает один файл.
Пример: ds = datastore('*.csv')
задает набор файлов .csv
.
Пример: ds = datastore('C:\MyData')
задает папку файлов.
Пример: ds = datastore('hdfs:///data/')
задает набор данных в файловой системе HDFS.
A
Переменная в оперативной памятиПеременная в оперативной памяти, заданная как массив.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| table
| string
| cell
| categorical
| datetime
| duration
| calendarDuration
Поддержка комплексного числа: Да
t
Длинный массивДлинный массив.
При преобразовании datastore t
является длинной таблицей для табличных хранилищ данных. В противном случае t
является высоким массивом ячеек.
При преобразовании массива в оперативной памяти базовый тип данных t
совпадает с class(A)
.
Смотрите Расширение длинных массивов с помощью других продуктов для получения информации о том, как использовать длинные массивы с:
Statistics and Machine Learning Toolbox™
Parallel Computing Toolbox™
MATLAB® Parallel Server™
Database Toolbox™
MATLAB Compiler™
Если вам установили Parallel Computing Toolbox, то, когда вы используете tall
, MATLAB автоматически открывает параллельный пул рабочих на вашей локальной машине. MATLAB запускает вычисления через доступных рабочих. Управляйте параллельным поведением с параллельными настройками, включая увеличение масштаба к кластеру.
Для получения дополнительной информации смотрите Длинные массивы Использования на Параллельном Пуле (Parallel Computing Toolbox).
classUnderlying
| datastore
| gather
| isaUnderlying
| istall
| mapreducer
| topkrows
| write
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.