В этом примере показано, как добавлять и удалять строки в таблице. Таблицы также можно редактировать с помощью редактора переменных.
Загрузите образцы данных пациентов и создайте таблицу, T.
load patients
T = table(LastName,Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
size(T)ans = 1×2
100 8
Таблица, T, имеет 100 строк и восемь переменных (столбцов).
Считывайте данные о других пациентах из файла с разделителями-запятыми, morePatients.csv, в таблицу, T2. Затем добавьте строки из T2 в конце таблицы, Т.
T2 = readtable('morePatients.csv');
Tnew = [T;T2];
size(Tnew)ans = 1×2
104 8
Стол Tnew имеет 104 строки. Для вертикальной конкатенации двух таблиц обе таблицы должны иметь одинаковое количество переменных с одинаковыми именами переменных. Если имена переменных отличаются, можно непосредственно назначить новые строки в таблице строкам из другой таблицы. Например, T(end+1:end+4,:) = T2.
Чтобы добавить новые строки, хранящиеся в массиве ячеек, выполните вертикальную конкатенацию массива ячеек на конце таблицы. Можно выполнить конкатенацию непосредственно из массива ячеек, если он имеет нужное количество столбцов и содержимое его ячеек может быть объединено с соответствующими переменными таблицы.
cellPatients = {'Edwards','Male',42,70,158,0,116,83;
'Falk','Female',28,62,125,1,120,71};
Tnew = [Tnew;cellPatients];
size(Tnew)ans = 1×2
106 8
Можно также преобразовать массив ячеек в таблицу с помощью cell2table функция.
Можно также добавить новые строки, хранящиеся в структуре. Преобразуйте структуру в таблицу, а затем объедините таблицы.
structPatients(1,1).LastName = 'George'; structPatients(1,1).Gender = 'Male'; structPatients(1,1).Age = 45; structPatients(1,1).Height = 76; structPatients(1,1).Weight = 182; structPatients(1,1).Smoker = 1; structPatients(1,1).Systolic = 132; structPatients(1,1).Diastolic = 85; structPatients(2,1).LastName = 'Hadley'; structPatients(2,1).Gender = 'Female'; structPatients(2,1).Age = 29; structPatients(2,1).Height = 58; structPatients(2,1).Weight = 120; structPatients(2,1).Smoker = 0; structPatients(2,1).Systolic = 112; structPatients(2,1).Diastolic = 70; Tnew = [Tnew;struct2table(structPatients)]; size(Tnew)
ans = 1×2
108 8
Чтобы опустить любые дублированные строки в таблице, используйте unique функция.
Tnew = unique(Tnew); size(Tnew)
ans = 1×2
106 8
unique удалил две повторяющиеся строки.
Удалите строки 18, 20 и 21 из таблицы.
Tnew([18,20,21],:) = []; size(Tnew)
ans = 1×2
103 8
Таблица содержит информацию о 103 пациентах сейчас.
Сначала укажите переменную идентификаторов, LastName, как имена строк. Затем удалите переменную, LastName, от Tnew. Наконец, используйте имя строки для индексирования и удаления строк.
Tnew.Properties.RowNames = Tnew.LastName;
Tnew.LastName = [];
Tnew('Smith',:) = [];
size(Tnew)ans = 1×2
102 7
Теперь в таблице на одну строку меньше, а на одну переменную меньше.
Можно также искать наблюдения в таблице. Например, удалите строки для всех пациентов в возрасте до 30 лет.
toDelete = Tnew.Age < 30; Tnew(toDelete,:) = []; size(Tnew)
ans = 1×2
85 7
В таблице теперь на 17 строк меньше.
array2table | cell2table | readtable | struct2table | table