Импорт данных: CSV, Excel и таблицы table
Прежде чем считать — данные надо загрузить; современный способ хранить их в MATLAB — таблица.
Тип table хранит разнотипные столбцы с именами — как лист электронной таблицы или DataFrame.
Чтение файлов одной командой
Функция readtable читает CSV и Excel в таблицу, сама определяя имена столбцов из заголовка и типы данных. Это самый удобный способ загрузить экспериментальные данные или выгрузку.
T = readtable('measurements.csv');
height(T) % число строк
T.Properties.VariableNames % имена столбцов
Для чистых числовых матриц без заголовков подойдёт readmatrix, а старый csvread постепенно выходит из употребления в пользу этих двух.
Обращение к столбцам
К столбцу таблицы обращаются по имени через точку: T.Temperature вернёт весь столбец как вектор. Дальше с ним работают как с любым массивом: считают среднее, фильтруют, строят график. Логическая индексация работает и над строками таблицы.
avgTemp = mean(T.Temperature);
hot = T(T.Temperature > 25, :); % строки с T > 25
plot(T.Time, T.Temperature);
Создание таблицы вручную
Таблицу можно собрать из векторов функцией table, задав имена столбцов. Это удобно, чтобы аккуратно хранить результаты расчёта вместе с подписями.
name = ["Ada"; "Bob"; "Cleo"];
score = [95; 80; 88];
T = table(name, score);
% T теперь таблица с колонками name и score
Параллель с pandas
Тип table — близкий родственник DataFrame из pandas: именованные столбцы, разные типы, фильтрация по условию, группировка. Группировки делает groupsummary (аналог groupby). Если вы знаете pandas, переход на table интуитивен; если знаете table — pandas покажется знакомым.
Как работает под капотом
Внутри таблица — это набор столбцов-векторов, объединённых под общими именами, плюс метаданные (имена переменных, имена строк, единицы измерения). Каждый столбец однороден по типу, но разные столбцы могут быть разными — числа, строки, даты, категории. Это компромисс между жёсткой числовой матрицей и совсем свободным cell-массивом: структура есть, но она гибкая. Поэтому T.Col возвращает быстрый однотипный вектор, а вся таблица остаётся удобным контейнером смешанных данных.
Запись результатов обратно в файл
Анализ данных редко заканчивается на экране — итог обычно нужно сохранить. Зеркально функциям чтения существуют функции записи: writetable(T, 'result.csv') сохраняет таблицу в CSV или Excel, writematrix — числовую матрицу, save('data.mat', 'T') сохраняет переменные в родной двоичный формат MAT, который потом мгновенно загружается через load. Формат MAT удобен для промежуточных результатов между сессиями MATLAB, а CSV и Excel — для обмена с внешним миром и коллегами, не работающими в MATLAB. Полный цикл «прочитал — обработал — записал» замыкается, и расчёт становится воспроизводимым конвейером: запустил скрипт — получил готовый файл результатов.
Частые ошибки
- Обращаться к столбцу как
T(:,1)(это подтаблица) вместоT.Name(это вектор значений). - Не учитывать, что
readtableможет прочитать числа как текст, если в столбце есть нечисловые символы. - Путать
readtable(таблица с именами) иreadmatrix(чистая числовая матрица).
Типичный конвейер работы с данными
Стоит увидеть, как импорт встраивается в полный цикл анализа. Сначала readtable загружает сырые данные. Затем их чистят: убирают пропуски (rmmissing), фильтруют выбросы логической индексацией, приводят типы. Дальше считают сводные характеристики — средние, группировки через groupsummary. И наконец визуализируют результат, обращаясь к столбцам по имени. Весь этот конвейер — загрузка, очистка, агрегирование, визуализация — складывается из уже знакомых вам инструментов: таблиц, масок, агрегатов и графиков. MATLAB здесь конкурирует с парой pandas плюс Matplotlib из мира Python, предлагая всё то же самое в единой среде.
Категориальные данные и даты
Реальные таблицы содержат не только числа. Для повторяющихся текстовых меток (город, марка, статус) есть тип categorical: он хранит данные компактно и ускоряет группировку, превращая текст в перечисление с конечным набором значений. Для моментов времени — типы datetime и duration, которые понимают арифметику дат: разность двух дат даёт длительность, а не бессмысленное число. readtable при чтении часто распознаёт такие столбцы автоматически. Правильные типы — не педантизм: они защищают от ошибок (нельзя случайно усреднить названия городов) и открывают специализированные операции вроде группировки по месяцам или сортировки категорий в осмысленном порядке.
Итоги
readtableзагружает CSV/Excel в таблицу с именованными столбцами.- К столбцу обращаются
T.Имя; строки фильтруют логической индексацией. table— родственник pandas DataFrame: гибкий контейнер разнотипных столбцов.