cdfread

Чтение данных из файла формата общих данных (CDF)

Синтаксис

data = cdfread(filename)
data = cdfread(filename, param1, val1, param2, val2, ...)
[data, info] = cdfread(filename, ...)

Описание

data = cdfread(filename) считывает все данные из указанного файла формата общих данных (CDF) filename. Задайте filename как вектор символов или строковый скаляр. Наборы данных CDF обычно содержат набор переменных определенного типа данных, каждый со связанным набором записей. Переменная может представлять значения времени с каждой записью, представляющей определенное время, которое было записано наблюдением. cdfread возвращает все данные в массиве ячеек, где каждый столбец представляет переменную, а каждая строка представляет запись, связанную с переменной. Если переменные имеют различное количество связанных записей, cdfread заполняет строки, чтобы создать прямоугольный массив ячеек, используя значения pad, заданные в CDF-файле.

Примечание

Поскольку cdfread создает временные файлы, текущая рабочая директория должен быть записываемым.

data = cdfread(filename, param1, val1, param2, val2, ...) считывает данные из файла, где param1, param2, и так далее, может быть любой из параметров, перечисленных в следующей таблице.

[data, info] = cdfread(filename, ...) возвращает подробную информацию о CDF-файле в 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'

Логическое значение, которое определяет, cdfread ли автоматически преобразует периодические типы данных CDF в MATLAB® серийные номера дат. Если установлено значение false (по умолчанию), cdfread переносит значения эпох в MATLAB cdfepoch объекты.


Примечание. Для повышения эффективности при чтении больших наборов данных установите этот параметр равным true.
'CombineRecords'Логическое значение, которое определяет, как cdfread возвращает наборы данных CDF, считанные из файла. Если установлено значение false (по умолчанию), cdfread сохраняет данные в m -by n массиве ячеек, где m - количество записей и n - количество запрашиваемых переменных. Если установлено значение true, cdfread объединяет все записи для конкретной переменной в одну камеру в массиве выходных ячеек. В этой камере cdfread сохраняет скалярные данные как массив столбцов. cdfread расширяет размерность нескаляра и строки данных. Например, вместо создания 1000 элементов, содержащих 20 на 30 массивов для каждой записи, cdfread хранит все записи в одной камере как массив 1000 на 20 на 30
Примечание: Если вы используете 'Records' параметр, чтобы указать, какие записи считать, вы не можете использовать 'CombineRecords' параметр.

Примечание: При использовании 'Variable' параметр, чтобы считать одну переменную, если 'CombineRecords' параметр true, cdfread возвращает данные как M-на-N числовой или символьный массив; данные не помещаются в массив ячеек.

Примечание

Чтобы улучшить эффективность при работе с большими файлами данных, используйте '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 приводит к ошибкам или данным с поврежденными символами.

Представлено до R2006a