высокий

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

Синтаксис

t = tall(ds)
t = tall(A)

Описание

пример

t = tall(ds) создает длинный массив сверху datastore ds.

  • Если ds является datastore для табличных данных (так, чтобы read и методы readall datastore возвратили таблицы), то t является длинной таблицей. Табличные данные являются данными, который располагается прямоугольным способом с каждой строкой, имеющей то же количество записей.

  • В противном случае t является высоким массивом ячеек.

пример

t = tall(A) преобразовывает массив в оперативной памяти A в длинный массив. Базовый тип данных t совпадает с class(A).

Примеры

свернуть все

Преобразуйте 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® и функций, чтобы работать с длинными массивами. Для списка поддерживаемых функций см.:

Преобразуйте 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.1 sec
Evaluation completed in 1.4 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
      :         :         :         :
      :         :         :         :

Входные параметры

свернуть все

Введите 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:///данные /') задает набор данных в файловой системе HDFS.

Переменная в оперативной памяти, заданная как массив.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | таблица | строка | ячейка | категориальный | datetime | длительность | calendarDuration
Поддержка комплексного числа: Да

Выходные аргументы

свернуть все

Длинный массив.

  • При преобразовании datastore t является длинной таблицей для табличных хранилищ данных. В противном случае t является высоким массивом ячеек.

  • При преобразовании массива в оперативной памяти базовый тип данных t совпадает с class(A).

Советы

Расширенные возможности

"Высокие" массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.

Введенный в R2017b

Была ли эта тема полезной?