Таблицы
Объект 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