Создайте массив набора данных из переменных рабочей области

Примечание

Тип данных dataset может быть удален в будущем релизе. Чтобы работать с гетерогенными данными, используйте тип данных MATLAB® table вместо этого. Смотрите MATLAB документация table для получения дополнительной информации.

Создайте массив набора данных из числового массива

Этот пример показывает, как создать массив набора данных из числового массива, существующего в рабочей области MATLAB®.

Загрузка демонстрационных данных.

load fisheriris

Две переменные загружают в рабочую область: meas, 150 4 числовой массив, и species, 150 1 массив ячеек меток разновидностей.

Создайте массив набора данных.

Используйте mat2dataset, чтобы преобразовать числовой массив, meas, в массив набора данных.

ds = mat2dataset(meas);
ds(1:10,:)
ans = 
    meas1    meas2    meas3    meas4
    5.1      3.5      1.4      0.2  
    4.9        3      1.4      0.2  
    4.7      3.2      1.3      0.2  
    4.6      3.1      1.5      0.2  
      5      3.6      1.4      0.2  
    5.4      3.9      1.7      0.4  
    4.6      3.4      1.4      0.3  
      5      3.4      1.5      0.2  
    4.4      2.9      1.4      0.2  
    4.9      3.1      1.5      0.1  

Массив, meas, имеет четыре столбца, таким образом, массив набора данных, ds, имеет четыре переменные. Имена переменных по умолчанию являются именем массивов, meas, с добавленными номерами столбцов.

Можно задать собственную переменную или имена наблюдения с помощью аргументов пары "имя-значение" VarNames и ObsNames, соответственно.

Если вы используете dataset, чтобы преобразовать числовой массив в массив набора данных, по умолчанию, получившийся массив набора данных имеет одну переменную, которая является массивом вместо отдельных переменных для каждого столбца.

Исследуйте массив набора данных.

Возвратите размер массива набора данных, ds.

size(ds)
ans = 1×2

   150     4

Массив набора данных, ds, одного размера как числовой массив, meas. Имена переменных и имена наблюдения не включают в размер массива набора данных.

Исследуйте метаданные набора данных массивов.

Возвратите свойства метаданных массива набора данных, ds.

ds.Properties
ans = struct with fields:
       Description: ''
    VarDescription: {}
             Units: {}
          DimNames: {'Observations'  'Variables'}
          UserData: []
          ObsNames: {}
          VarNames: {'meas1'  'meas2'  'meas3'  'meas4'}

Можно также получить доступ к свойствам индивидуально. Например, можно получить имена переменных с помощью ds.Properties.VarNames.

Данные о доступе в переменной типа массив набора данных.

Можно использовать имена переменных с индексацией точки, чтобы получить доступ к данным в массиве набора данных. Например, найдите минимальное значение в первой переменной, meas1.

min(ds.meas1)
ans = 4.3000

Измените имена переменных.

Эти четыре переменные в ds являются на самом деле измерениями длины чашелистика, ширины чашелистика, лепестковой длины и лепестковой ширины. Измените имена переменных, чтобы быть более описательными.

ds.Properties.VarNames = {'SLength','SWidth','PLength','PWidth'};

Добавьте описание.

можно добавить описание для массива набора данных.

ds.Properties.Description = 'Fisher iris data';
ds.Properties
ans = struct with fields:
       Description: 'Fisher iris data'
    VarDescription: {}
             Units: {}
          DimNames: {'Observations'  'Variables'}
          UserData: []
          ObsNames: {}
          VarNames: {'SLength'  'SWidth'  'PLength'  'PWidth'}

Свойства массива набора данных обновляются с новыми именами переменных и описанием.

Добавьте переменную в массив набора данных.

Переменная species является массивом ячеек меток разновидностей. Добавьте species в массив набора данных, ds, как номинальный массив под названием Species. Отобразите первые пять наблюдений в массиве набора данных.

ds.Species = nominal(species);
ds(1:5,:)
ans = 
    SLength    SWidth    PLength    PWidth    Species
    5.1        3.5       1.4        0.2       setosa 
    4.9          3       1.4        0.2       setosa 
    4.7        3.2       1.3        0.2       setosa 
    4.6        3.1       1.5        0.2       setosa 
      5        3.6       1.4        0.2       setosa 

Массив набора данных, ds, теперь имеет пятую переменную, Species.

Создайте массив набора данных из неоднородных переменных рабочей области

Этот пример показывает, как создать массив набора данных из неоднородных переменных, существующих в рабочей области MATLAB®.

Загрузка демонстрационных данных.

load carsmall

Создайте массив набора данных.

Создайте массив набора данных из подмножества переменных рабочей области.

ds = dataset(Origin,Acceleration,Cylinders,MPG);
ds.Properties.VarNames(:)
ans = 4x1 cell array
    {'Origin'      }
    {'Acceleration'}
    {'Cylinders'   }
    {'MPG'         }

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

Заметьте, что массив набора данных, ds, содержит набор переменных с типами гетерогенных данных. Origin является символьным массивом, и другие переменные являются числовыми.

Исследуйте массив набора данных.

Отобразите первые пять наблюдений в массиве набора данных.

ds(1:5,:)
ans = 
    Origin     Acceleration    Cylinders    MPG
    USA          12            8            18 
    USA        11.5            8            15 
    USA          11            8            18 
    USA          12            8            16 
    USA        10.5            8            17 

Примените функцию к массиву набора данных.

Используйте datasetfun, чтобы возвратить тип данных каждой переменной в ds.

varclass = datasetfun(@class,ds,'UniformOutput',false);
varclass(:)
ans = 4x1 cell array
    {'char'  }
    {'double'}
    {'double'}
    {'double'}

Можно получить дополнительную информацию о переменных с помощью summary(ds).

Измените массив набора данных.

Cylinders является числовой переменной, которая имеет значения 4, 6 и 8 для количества цилиндров. Преобразуйте Cylinders в номинальный массив с уровнями four, six и eight.

Отобразите страну происхождения и количество цилиндров для первых 15 автомобилей.

ds.Cylinders = nominal(ds.Cylinders,{'four','six','eight'});
ds(1:15,{'Origin','Cylinders'})
ans = 
    Origin     Cylinders
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    
    France     four     
    USA        eight    
    USA        eight    
    USA        eight    
    USA        eight    

Переменная Cylinders имеет новый тип данных.

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

| | |

Связанные примеры

Больше о