www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/ImportCDFFilesUsingHighLevelFunctionsExample.m

    %% Import CDF Files Using High-Level Functions
% This example shows how to use high-level MATLAB(R) functions to import
% the sample CDF file, |example.cdf|. High-level functions provide a
% simpler interface to accessing CDF files.
%% Get Information About Contents of CDF File
% Get information about the contents of a CDF file using the |cdfinfo|
% function. Because |cdfinfo| creates temporary files, ensure that your
% current folder is writable before using the
% function.

% Copyright 2015 The MathWorks, Inc.

info = cdfinfo('example.cdf')
%%
% |cdfinfo| returns a structure containing general information about
% the file and detailed information about the variables and attributes in
% the file. In this example, the |Variables| field indicates the number of
% variables in the file.
%%
% View the contents of the |Variables| field.
vars = info.Variables
%%
% The first variable, |Time|, consists of 24 records containing CDF epoch
% data. The next two variables, |Longitude| and |Latitude|, each have only one
% associated record containing |int8| data.

%% Read All Data from CDF File
% Use the |cdfread| function to read all of the data in the CDF file.
data = cdfread('example.cdf');
whos data
%%
% |cdfread| returns the data in a cell array. The columns of data correspond to the
% variables. The rows correspond to the records associated with a variable.
%% Read Data from Specific Variables
% Read only the |Longitude| and |Latitude| variables from the CDF file. To
% read the data associated with particular variables, use the
% |'Variable'| parameter. Specify the names of the variables as text strings
% in a cell array. Variable names are case sensitive.
var_long_lat = cdfread('example.cdf','Variable',{'Longitude','Latitude'});
whos var_long_lat
%% Combine Records to Speed Up Read Operations
% By default, |cdfread| creates a cell array with a separate element for
% every variable and every record in each variable, padding the records
% dimension to create a rectangular cell array. When working with large
% data sets, you can speed up read operations by specifying
% the |'CombineRecords'| parameter to reduce the number of
% elements in the cell array that |cdfread| returns. When you set the |'CombineRecords'|
% parameter to |true|, the |cdfread| function creates a separate element for each variable
% but saves time by putting all the records associated with a variable in a
% single cell array element.
data_combined = cdfread('example.cdf','CombineRecords',true);
%%
% Compare the sizes of the cell arrays returned by |cdfread|.
whos data*
%%
% Reading all the data from the example file without the |CombineRecords|
% parameter returns a 24-by-6 cell array, where the columns
% represent variables and the rows represent the records for each variable.
% Reading the data from the same file with |'CombineRecords'| set to |true|
% returns a 1-by-6 cell array.
%%
% When combining records, the dimensions of the data in the cell
% change. In this example, the |Time| variable has 24 records, each of
% which is a scalar value. In the |data_combined| cell array, the combined
% element contains a 24-by-1 vector of values. 
%% Read CDF Epoch Values as Serial Date Numbers
% By default, |cdfread| creates a MATLAB |cdfepoch| object for each CDF
% epoch value in the file. Speed up read operations by setting the
% 'ConvertEpochToDatenum' name-value pair argument to |true|,
% to return CDF epoch values as MATLAB serial date numbers.
data_datenums = cdfread('example.cdf','ConvertEpochToDatenum',true);
whos data*