Чтение данных из файла формата общих данных (CDF)
data = cdfread(
filename
)
data = cdfread(filename
, param1
, val1
,
param2, val2, ...)
[data, info] = cdfread(filename
,
...)
data = cdfread(
считывает все данные из указанного файла формата общих данных (CDF) filename
)filename
. Задайте filename
как вектор символов или строковый скаляр. Наборы данных CDF обычно содержат набор переменных определенного типа данных, каждый со связанным набором записей. Переменная может представлять значения времени с каждой записью, представляющей определенное время, которое было записано наблюдением. cdfread
возвращает все данные в массиве ячеек, где каждый столбец представляет переменную, а каждая строка представляет запись, связанную с переменной. Если переменные имеют различное количество связанных записей, cdfread
заполняет строки, чтобы создать прямоугольный массив ячеек, используя значения pad, заданные в CDF-файле.
Примечание
Поскольку cdfread
создает временные файлы, текущая рабочая директория должен быть записываемым.
data = cdfread(
считывает данные из файла, где filename
, param1
, val1
,
param2, val2, ...)
, param1
, и так далее, может быть любой из параметров, перечисленных в следующей таблице.param2
[data, info] = cdfread(
возвращает подробную информацию о CDF-файле в filename
,
...)info
структура.
Параметр | Значение |
---|---|
'Records' | Вектор, указывающий, какие записи нужно считать. Номера записи начинаются с нуля. cdfread возвращает массив ячеек с одинаковым числом строк, как и количество считанных записей, и столько столбцов, сколько переменных. |
'Variables' | Массив ячеек 1-by- n или n-by-1, задающий имена переменных для чтения из файла. n должны быть меньше или равны общему количеству переменных в файле. cdfread возвращает массив ячеек с одинаковым числом столбцов, как и количество считанных переменных, и строку для каждой считанной записи. |
'Slices' | Массив m -by-3, где каждая строка задает, с чего начать чтение по конкретному измерению переменной, интервал пропуска для использования в этой размерности (каждый элемент, каждый другой элемент и т.д.) и общее количество значений для чтения по этой размерности. m должно быть меньше или равно количеству размерностей переменной. Если m меньше, чем общее количество размерностей, cdfread считывает каждое значение из неопределенных размерностей ([0 1 n] , где n - общее количество элементов в размерности. Примечание: Потому что 'Slices' параметр описывает, как обработать одну переменную, она должна использоваться в сочетании со 'Variables' параметр. |
'ConvertEpochToDatenum' | Логическое значение, которое определяет, Примечание. Для повышения эффективности при чтении больших наборов данных установите этот параметр равным true . |
'CombineRecords' | Логическое значение, которое определяет, как cdfread возвращает наборы данных CDF, считанные из файла. Если установлено значение false (по умолчанию), cdfread сохраняет данные в m -by n массиве ячеек, где m - количество записей и n - количество запрашиваемых переменных. Если установлено значение true , cdfread объединяет все записи для конкретной переменной в одну камеру в массиве выходных ячеек. В этой камере cdfread сохраняет скалярные данные как массив столбцов. cdfread расширяет размерность нескаляра и строки данных. Например, вместо создания 1000 элементов, содержащих 20 на 30 массивов для каждой записи, cdfread хранит все записи в одной камере как массив 1000 на 20 на 30Примечание: Если вы используете 'Records' параметр, чтобы указать, какие записи считать, вы не можете использовать 'CombineRecords' параметр.Примечание: При использовании |
Примечание
Чтобы улучшить эффективность при работе с большими файлами данных, используйте 'ConvertEpochToDatenum'
и 'CombineRecords'
опции.
Примечание
Чтобы повысить эффективность, отключите валидацию файлов, которую по умолчанию выполняет библиотека CDF при открытии файлов. Для получения дополнительной информации см. cdflib.setValidate
.
Считайте все данные из CDF-файла.
data = cdfread('example.cdf');
Считайте данные из переменной 'Time'
.
data = cdfread('example.cdf', 'Variable', {'Time'});
Считайте первое значение в первом измерении, второе значение во втором измерении, первое и третье значения в третьем измерении и все значения в оставшейся размерности переменной 'multidimensional'
.
data = cdfread('example.cdf', ... 'Variable', {'multidimensional'}, ... 'Slices', [0 1 1; 1 1 1; 0 2 2]);
Это похоже на чтение всей переменной в data
а затем с помощью индексирования матриц, как в следующем.
data{1}(1, 2, [1 3], :)
Сверните записи из набора данных и преобразуйте типы данных эпохи CDF в серийные номера дат MATLAB.
data = cdfread('example.cdf', ... 'CombineRecords', true, ... 'ConvertEpochToDatenum', true);
The cdfread
функция не поддерживает кодированные без ASCII данные. Все имена переменных, имена атрибутов, значения переменных и значения атрибутов в CDF-файле должны иметь 7-битную кодировку ASCII. Попытка считать файлы без кодировки ASCII приводит к ошибкам или данным с поврежденными символами.