arrayDatastore

Datastore для данных в оперативной памяти

Описание

Используйте ArrayDatastore объект управлять datastore, созданным из данных в оперативной памяти. Можно создать ArrayDatastore объект с помощью arrayDatastore функционируйте, задайте его свойства, и затем импортируйте и обработайте данные, используя функции объекта.

Создание

Описание

пример

arrds = arrayDatastore(A) создает datastore arrds от массива A сохраненный в памяти.

пример

arrds = arrayDatastore(A,Name,Value) задает дополнительные параметры и свойства для arrds использование одного или нескольких аргументов пары "имя-значение". Например, укажите что каждый вызов read функционируйте читает три строки данных путем вызова arrds = arrayDatastore(data,"ReadSize",3).

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

развернуть все

Входной массив в виде матрицы.

Свойства

развернуть все

ArrayDatastore свойства описывают формат данных в оперативной памяти в объекте datastore и управляют, как данные считаны из datastore. Можно задать значение ArrayDatastore аргументы пары "имя-значение" использования свойств, когда вы создаете объект datastore. Чтобы просмотреть или изменить свойство после создания объекта, используйте запись через точку.

Объем данных, чтобы читать в вызове read функция в виде разделенной запятой пары, состоящей из 'ReadSize' и положительное целое число. Каждый вызов read читает максимум ReadSize 'Строки' . Если вы задаете значение для 'ReadSize' это превышает количество строк во входных данных, read считает все строки в объекте datastore.

Значение по умолчанию 'ReadSize' 1.

Типы данных: double

Размерность, в которой можно читать в вызове read функция в виде разделенной запятой пары, состоящей из 'IterationDimension' и положительное целое число. Например, 'IterationDimension',2 делает read возвратите данные в столбцах в объект datastore. Значение по умолчанию 'IterationDimension' 1, который делает read возвратите данные в строках..

Если вы задаете значение 'OutputType' свойство как 'same', затем 'IterationDimension' должен быть установлен в значение 1.

Если вы изменяете значение 'IterationDimension' после создания вашего ArrayDatastore объект, MATLAB® сбрасывает datastore к непрочитанному состоянию.

Типы данных: double

Выходные данные вводят в виде разделенной запятой пары, состоящей из 'OutputType' и одно из этих значений:

  • 'cell' — Возвратите данные как n-1 массив ячеек. Например, если A числовой массив и ReadSize 3чтение возвращает массив ячеек 3 на 1 числовых данных.

  • 'same' — Возвратите совпадающий тип данных как входной массив A. Например, если A числовой массив, read возвращает числовые массивы.

Значение OutputType определяет тип данных, возвращенный preview, read, и readall функции.

Если вы изменяете значение 'OutputType' после создания вашего ArrayDatastore объект, MATLAB сбрасывает datastore к непрочитанному состоянию.

Типы данных: char | string

Функции объекта

hasdataОпределите, доступны ли данные для чтения
numpartitionsКоличество разделов datastore
partitionРазделите datastore
previewПодмножество предварительного просмотра данных в datastore
readСчитайте данные в datastore
readallСчитывайте все данные в datastore
resetСброс Datastore к начальному состоянию
transformПреобразуйте datastore
combineОбъедините данные от нескольких datastores
shuffleПереставьте все данные в datastore
subsetСоздайте подмножество datastore или установленный на файл

Примеры

свернуть все

Создайте ArrayDatastore объект из матрицы, затем считайте все данные в datastore.

Создайте матрицу.

A = magic(10)
A = 10×10

    92    99     1     8    15    67    74    51    58    40
    98    80     7    14    16    73    55    57    64    41
     4    81    88    20    22    54    56    63    70    47
    85    87    19    21     3    60    62    69    71    28
    86    93    25     2     9    61    68    75    52    34
    17    24    76    83    90    42    49    26    33    65
    23     5    82    89    91    48    30    32    39    66
    79     6    13    95    97    29    31    38    45    72
    10    12    94    96    78    35    37    44    46    53
    11    18   100    77    84    36    43    50    27    59

Создайте ArrayDatastore объект из матрицы.

arrds = arrayDatastore(A)
arrds = 
  ArrayDatastore with properties:

              ReadSize: 1
    IterationDimension: 1
            OutputType: "cell"

Считайте все данные в datastore.

readall(arrds)
ans=10×1 cell array
    {[   92 99 1 8 15 67 74 51 58 40]}
    {[  98 80 7 14 16 73 55 57 64 41]}
    {[  4 81 88 20 22 54 56 63 70 47]}
    {[  85 87 19 21 3 60 62 69 71 28]}
    {[   86 93 25 2 9 61 68 75 52 34]}
    {[ 17 24 76 83 90 42 49 26 33 65]}
    {[  23 5 82 89 91 48 30 32 39 66]}
    {[  79 6 13 95 97 29 31 38 45 72]}
    {[ 10 12 94 96 78 35 37 44 46 53]}
    {[11 18 100 77 84 36 43 50 27 59]}

Возвратите совпадающие типы данных как входной массив вместо того, чтобы возвратить данные как n-1 массив ячеек.

Составьте таблицу из файла электронной таблицы counties.xlsx. Импортируйте все строки от пятого до десятых столбцов в электронной таблице.

T = readtable("counties.xlsx","Range",[1,5,67,10])
T=66×6 table
          CountyName           State        StateName       Population2010    HousingUnits2010     LandArea 
    _______________________    ______    _______________    ______________    ________________    __________

    {'Fairfield County'   }    {'CT'}    {'Connecticut'}      9.1683e+05         3.6122e+05       1.6185e+09
    {'Hartford County'    }    {'CT'}    {'Connecticut'}      8.9401e+05         3.7425e+05       1.9039e+09
    {'Litchfield County'  }    {'CT'}    {'Connecticut'}      1.8993e+05              87550       2.3842e+09
    {'Middlesex County'   }    {'CT'}    {'Connecticut'}      1.6568e+05              74837       9.5649e+08
    {'New Haven County'   }    {'CT'}    {'Connecticut'}      8.6248e+05           3.62e+05       1.5657e+09
    {'New London County'  }    {'CT'}    {'Connecticut'}      2.7406e+05         1.2099e+05        1.722e+09
    {'Tolland County'     }    {'CT'}    {'Connecticut'}      1.5269e+05              57963       1.0624e+09
    {'Windham County'     }    {'CT'}    {'Connecticut'}      1.1843e+05              49073       1.3284e+09
    {'Androscoggin County'}    {'ME'}    {'Maine'      }       1.077e+05              49090       1.2119e+09
    {'Aroostook County'   }    {'ME'}    {'Maine'      }           71870              39529       1.7279e+10
    {'Cumberland County'  }    {'ME'}    {'Maine'      }      2.8167e+05         1.3866e+05       2.1633e+09
    {'Franklin County'    }    {'ME'}    {'Maine'      }           30768              21709       4.3942e+09
    {'Hancock County'     }    {'ME'}    {'Maine'      }           54418              40184         4.11e+09
    {'Kennebec County'    }    {'ME'}    {'Maine'      }      1.2215e+05              60972       2.2469e+09
    {'Knox County'        }    {'ME'}    {'Maine'      }           39736              23744       9.4569e+08
    {'Lincoln County'     }    {'ME'}    {'Maine'      }           34457              23493       1.1806e+09
      ⋮

Создайте datastore из таблицы. Установите 'OutputType' к 'same' возвратить совпадающие типы данных как входную таблицу.

arrds = arrayDatastore(T,"OutputType","same")
arrds = 
  ArrayDatastore with properties:

              ReadSize: 1
    IterationDimension: 1
            OutputType: "same"

Предварительно просмотрите данные в datastore.

preview(arrds)
ans=8×6 table
         CountyName          State        StateName       Population2010    HousingUnits2010     LandArea 
    _____________________    ______    _______________    ______________    ________________    __________

    {'Fairfield County' }    {'CT'}    {'Connecticut'}      9.1683e+05         3.6122e+05       1.6185e+09
    {'Hartford County'  }    {'CT'}    {'Connecticut'}      8.9401e+05         3.7425e+05       1.9039e+09
    {'Litchfield County'}    {'CT'}    {'Connecticut'}      1.8993e+05              87550       2.3842e+09
    {'Middlesex County' }    {'CT'}    {'Connecticut'}      1.6568e+05              74837       9.5649e+08
    {'New Haven County' }    {'CT'}    {'Connecticut'}      8.6248e+05           3.62e+05       1.5657e+09
    {'New London County'}    {'CT'}    {'Connecticut'}      2.7406e+05         1.2099e+05        1.722e+09
    {'Tolland County'   }    {'CT'}    {'Connecticut'}      1.5269e+05              57963       1.0624e+09
    {'Windham County'   }    {'CT'}    {'Connecticut'}      1.1843e+05              49073       1.3284e+09

Создайте datastore для переменной MAT-файла, и затем считайте данные из файла с различным ReadSize значения.

Загрузите MAT-файл BostonWeatherData.mat в рабочую область.

load 'BostonWeatherData.mat'

Создайте datastore для weatherData переменная. Установите ReadSize к 10 'Строки' . Значение ReadSize определяет, сколько строк данных читается из datastore с каждым вызовом read функция. Установите 'OutputType' к 'same' возвратить совпадающие типы данных как входной массив.

arrds = arrayDatastore(weatherData,"ReadSize",10, "OutputType","same")
arrds = 
  ArrayDatastore with properties:

              ReadSize: 10
    IterationDimension: 1
            OutputType: "same"

Считайте данные из datastore.

data1 = read(arrds)
data1=10×3 timetable
       Time        TemperatureF    Humidity       Events   
    ___________    ____________    ________    ____________

    01-Jul-2015         72            78       Thunderstorm
    02-Jul-2015         72            60       None        
    03-Jul-2015         70            56       None        
    04-Jul-2015         67            75       None        
    05-Jul-2015         72            67       None        
    06-Jul-2015         74            69       None        
    07-Jul-2015         75            77       Rain        
    08-Jul-2015         79            68       Rain        
    09-Jul-2015         66            77       Rain        
    10-Jul-2015         69            74       Rain        

Установите ReadSize значение свойства к 30 и читайте из datastore. Второй вызов read функционируйте читает следующие 30 строк из datastore.

arrds.ReadSize = 30;

Считайте данные из datastore.

data2 = read(arrds)
data2=30×3 timetable
       Time        TemperatureF    Humidity    Events
    ___________    ____________    ________    ______

    11-Jul-2015         76            49        None 
    12-Jul-2015         81            54        None 
    13-Jul-2015         72            81        None 
    14-Jul-2015         74            72        Rain 
    15-Jul-2015         75            87        Rain 
    16-Jul-2015         64            65        None 
    17-Jul-2015         68            72        None 
    18-Jul-2015         71            81        Rain 
    19-Jul-2015         81            73        Rain 
    20-Jul-2015         81            62        None 
    21-Jul-2015         76            66        None 
    22-Jul-2015         77            58        None 
    23-Jul-2015         75            52        None 
    24-Jul-2015         74            60        Rain 
    25-Jul-2015         66            81        None 
    26-Jul-2015         71            79        Rain 
      ⋮

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

Загрузите видеоданные. Создайте VideoReader объект из файла xylophone.mp4.

v = VideoReader('xylophone.mp4');

Считайте все видеокадры из VideoReader объект в рабочую область.

allFrames = read(v);

Создайте datastore из систем координат, которые вы читаете. Установите 'IterationDimension' к 4 считывать данные по его четвертому измерению. Установите 'OutputType' к 'cell' возвратить данные как массив ячеек. Установите 'ReadSize' к 4, чтобы считать четыре видеокадра в каждом вызове read функция.

arrds = arrayDatastore(allFrames,"IterationDimension",4,"OutputType","cell","ReadSize",4)
arrds = 
  ArrayDatastore with properties:

              ReadSize: 4
    IterationDimension: 4
            OutputType: "cell"

Считайте и отобразите первые четыре видеокадра в datastore как прямоугольное мозаичное изображение.

frames = read(arrds);
imout = imtile(frames);
imshow(imout)

Figure contains an axes object. The axes object contains an object of type image.

Советы

  • Можно объединить и преобразовать ArrayDatastore объекты с хранилищами данных, которые содержат дисковые данные (такие как ImageDatastore и TabularTextDatastore объекты) использование combine и transform функции.

Смотрите также

|

Введенный в R2020b