В этом примере показано, как импортировать данные из базы данных в MATLAB ®, выполнить вычисления данных и экспортировать результаты в таблицу базы данных.
В примере предполагается, что выполняется подключение к базе данных Microsoft ® Access™, содержащей таблицы с именемsalesvolume и yearlysales. Кроме того, в примере предполагается, что MATLAB запускается как администратор. salesvolume содержит имена столбцов для каждого месяца. yearlysales таблица содержит имена столбцов month и salestotal.
Создайте подключение к базе данных Microsoft Access. Например, этот код предполагает подключение к источнику данных с именем dbdemo с пустым именем пользователя и паролем.
conn = database('dbdemo','','');
Проверьте подключение к базе данных. Если Message пустое свойство, подключение выполнено успешно.
conn.Message
ans =
[]
Импорт данных оборота за март с помощью подключения к базе данных. salesvolume таблица базы данных содержит данные оборота.
tablename = 'salesvolume';
data = sqlread(conn,tablename);
Просмотрите первые три строки данных оборота. Четвертая переменная содержит данные за март месяц.
head(data(:,4),3)
ans =
3×1 table
march
_____
981
1414
890
Вычислите сумму мартовских продаж. Назначение результата переменной рабочей области MATLAB total и просмотрите результат.
total = sum(data.march)
total =
14606
Извлеките имя месяца из данных оборота.
month = data.Properties.VariableNames(4);
Определите имена столбцов для вставляемых данных в виде массива ячеек символьных векторов.
colnames = {'month' 'salestotal'};
Создайте таблицу MATLAB, в которой хранятся экспортируемые данные.
results = table(month,total,'VariableNames',colnames);
Определение статуса AutoCommit флаг базы данных. Этот статус определяет возможность отмены действия вставки.
conn.AutoCommit
ans =
'on'
AutoCommit флаг установлен в значение on. База данных автоматически фиксирует экспортированные данные в базе данных, и это действие невозможно отменить.
Вставьте сумму продаж за март месяц в yearlysales таблица.
tablename = 'yearlysales';
sqlwrite(conn,tablename,results)
Импорт данных из yearlysales таблица. Эти данные содержат рассчитанный результат.
data = sqlread(conn,tablename)
data =
1×3 table
month salestotal revenue
_______ __________ _______
'march' 14606 0
close(conn)
close | database | sqlread | sqlwrite