Таблицы

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

Пример таблицы, которая в первом столбце содержит строковые данные, а во втором столбце – числовые:

>> T1 = table( {'AA'; 'AB'; 'BA'}, (1:3)' )

T1 =
  3×2 table
    Var1    Var2
    ____    ____
    'AA'     1  
    'AB'     2  
    'BA'     3  

Следует обратить внимание, что были переданы матрица-столбец ячеек и числовая матрица-столбец. Если передать строки, то результатом будет таблица, содержащая одну строку с матрицей ячеек в первом столбце и матрицей-строкой во втором

>> T1 = table( {'AA', 'AB', 'BA'}, (1:3) )

T1 =
  1×2 table
            Var1               Var2    
    ____________________    ___________
    'AA'    'AB'    'BA'    1    2    3

Столбцам таблицы были автоматически присвоены имена ‘Var1’ и ‘Var2’. Эти имена можно использовать для обращения к столбцам

>> T1.Var1

ans =
  3×1 cell array
    {'AA'}
    {'AB'}
    {'BA'}

>> T1.Var2

ans =
     1
     2
     3

При создании таблицы можно задать имена столбцов при помощи свойства VariableNames

>> T1 = table( {'AA'; 'AB'; 'BA'}, (1:3)', 'VariableNames', {'Variant', 'Value'} )

T1 =
  3×2 table
    Variant    Value
    _______    _____
     'AA'        1  
     'AB'        2  
     'BA'        3  

Можно создать пустую таблицу заданных размеров, при этом необходимо указать тип данных для каждого столбца

>> T = table('Size',[5 3],'VariableTypes',{'string','double','datetime'})

T =
  5×3 table
      Var1       Var2    Var3
    _________    ____    ____
    <missing>     0      NaT 
    <missing>     0      NaT 
    <missing>     0      NaT 
    <missing>     0      NaT 
    <missing>     0      NaT 

Заполняем первую строку таблицы

>> T.Var1(1) = 'Вариант 1';
>> T.Var2(1) = 5;
>> T.Var3(1) = datetime(2020,5,20);
>> T

T =
  5×3 table
       Var1        Var2       Var3    
    ___________    ____    ___________
    "Вариант 1"     5      20-May-2020
    <missing>       0              NaT
    <missing>       0              NaT
    <missing>       0              NaT
    <missing>       0              NaT

При создании таблицы можно задать имена строк

>> T = table('Size',[3 3],'VariableTypes',{'string','double','datetime'}, 'RowNames', {'Иванов', 'Петров', 'Сидоров'});

T =
  3×3 table
                 Var1       Var2    Var3
               _________    ____    ____
    Иванов     <missing>     0      NaT 
    Петров     <missing>     0      NaT 
    Сидоров    <missing>     0      NaT 

Имя строки может использоваться для доступа к элементу таблицы

>> T({'Иванов'},1) = {'Хорошо'}

T =
  3×3 table
                 Var1       Var2    Var3
               _________    ____    ____
    Иванов     "Хорошо"      0      NaT 
    Петров     <missing>     0      NaT 
    Сидоров    <missing>     0      NaT 

Этот же элемент таблицы можно изменить, используя имя столбца и номер строки

>> T.Var1{1} = 'Удовлетворительно'

T =
  3×3 table
                      Var1            Var2    Var3
               ___________________    ____    ____
    Иванов     "Удовлетворительно"     0      NaT 
    Петров     <missing>               0      NaT 
    Сидоров    <missing>               0      NaT