Импорт CDF-файлов Используя высокоуровневые функции

В этом примере показано, как использовать высокоуровневые функции MATLAB®, чтобы импортировать демонстрационный CDF-файл, example.cdf. Высокоуровневые функции обеспечивают более простой интерфейс к доступу к CDF-файлам.

Получение информации о содержимом CDF-файла

Получите информацию о содержимом CDF-файла с помощью cdfinfo функция. Поскольку cdfinfo создает временные файлы, гарантируйте, что ваша текущая папка перезаписываема перед использованием функции.

info = cdfinfo('example.cdf')
info = struct with fields:
              Filename: 'example.cdf'
           FileModDate: '10-May-2010 21:35:01'
              FileSize: 1310
                Format: 'CDF'
         FormatVersion: '2.7.0'
          FileSettings: [1x1 struct]
              Subfiles: {}
             Variables: {6x6 cell}
      GlobalAttributes: [1x1 struct]
    VariableAttributes: [1x1 struct]

cdfinfo возвращает структуру, содержащую общую информацию о файле и подробную информацию о переменных и атрибутах в файле. В этом примере, Variables поле указывает на количество переменных в файле.

Просмотрите содержимое Variables поле .

vars = info.Variables
vars=6×6 cell array
  Columns 1 through 5

    {'Time'            }    {[    1 1]}    {[24]}    {'epoch' }    {'T/'    }
    {'Longitude'       }    {[    2 2]}    {[ 1]}    {'int8'  }    {'F/FT'  }
    {'Latitude'        }    {[    2 2]}    {[ 1]}    {'int8'  }    {'F/TF'  }
    {'Data'            }    {[  2 2 4]}    {[ 1]}    {'double'}    {'T/TTT' }
    {'multidimensional'}    {[2 2 3 4]}    {[ 1]}    {'uint8' }    {'T/TTTT'}
    {'Temperature'     }    {[    3 2]}    {[10]}    {'int16' }    {'T/TT'  }

  Column 6

    {'Full'}
    {'Full'}
    {'Full'}
    {'Full'}
    {'Full'}
    {'Full'}

Первая переменная, Time, состоит из 24 записей, содержащих данные эпохи CDF. Следующие две переменные, Longitude и Latitude, у каждого есть только одна связанная запись, содержащая int8 данные.

Считывайте все данные от CDF-файла

Используйте cdfread функционируйте, чтобы считать все данные в CDF-файле.

data = cdfread('example.cdf');
whos data
  Name       Size            Bytes  Class    Attributes

  data      24x6             23904  cell               

cdfread возвращает данные в массиве ячеек. Столбцы данных соответствуют переменным. Строки соответствуют записям, сопоставленным с переменной.

Чтение данных из определенных переменных

Только для чтения Longitude и Latitude переменные из CDF-файла. Чтобы считать данные, сопоставленные с конкретными переменными, используйте 'Variable' параметр. Задайте имена переменных в массиве ячеек из символьных векторов. Имена переменных являются чувствительными к регистру.

var_long_lat = cdfread('example.cdf','Variable',{'Longitude','Latitude'});
whos var_long_lat
  Name              Size            Bytes  Class    Attributes

  var_long_lat      1x2               216  cell               

Объединение записей, чтобы ускорить операции чтения

По умолчанию, cdfread создает массив ячеек с отдельным элементом для каждой переменной и каждой записи в каждой переменной, дополняя размерность записей, чтобы создать прямоугольный массив ячеек. При работе с большими наборами данных можно ускорить операции чтения путем определения 'CombineRecords' параметр, чтобы уменьшать число элементов в массиве ячеек, что cdfread возвращается. Когда вы устанавливаете 'CombineRecords' параметр к true, cdfread функция создает отдельный элемент для каждой переменной, но экономит время путем помещения всех записей, сопоставленных с переменной в элементе массива отдельной ячейки.

data_combined = cdfread('example.cdf','CombineRecords',true);

Сравните размеры массивов ячеек, возвращенных cdfread.

whos data*
  Name                Size            Bytes  Class    Attributes

  data               24x6             23904  cell               
  data_combined       1x6              8080  cell               

Чтение всех данных из файла в качестве примера без CombineRecords параметр возвращает 24 6 массив ячеек, где столбцы представляют переменные, и строки представляют записи для каждой переменной. Чтение данных из того же файла с 'CombineRecords' установите на true возвращает 1 6 массив ячеек.

При объединении записей, размерностей данных в изменении ячеек. В этом примере, Time переменная имеет 24 записи, каждая из которых является скалярным значением. В data_combined массив ячеек, объединенный элемент содержит 24 1 вектор из значений.

Чтение значений эпохи CDF как последовательных чисел даты

По умолчанию, cdfread создает cdfepoch MATLAB объект для каждого значения эпохи CDF в файле. Ускорьте операции чтения путем установки аргумента пары "имя-значение" 'ConvertEpochToDatenum' true, возвращать значения эпохи CDF как MATLAB последовательные числа даты.

data_datenums = cdfread('example.cdf','ConvertEpochToDatenum',true);
whos data*
  Name                Size            Bytes  Class    Attributes

  data               24x6             23904  cell               
  data_combined       1x6              8080  cell               
  data_datenums      24x6             19872  cell               

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

|

Внешние веб-сайты