В этом примере показано, как выполнить MATLAB® регрессия и аппроксимирование кривыми данных в Microsoft® Excel® использование листа и макроса VBA.
Пример организует и отображает входные и выходные данные в листе Microsoft Excel. Функции Spreadsheet Link™ копируют данные в рабочее пространство MATLAB и выполняют вычислительные и графические функции MATLAB. Макрос VBA также возвращает выходные данные в лист.
Чтобы работать с кодом VBA в Excel с Spreadsheet Link, необходимо включить Spreadsheet Link как ссылку в Microsoft Visual Basic® Редактор. Для получения дополнительной информации см. раздел Установка.
Откройте ExliSamp.xls
Файлом и выберите лист Sheet1. Для помощи в поиске ExliSamp.xls
файл, см. Установка.
Sheet1 из электронных таблиц содержит именованную область значений DATA
, который состоит из примера набора данных в камерах листа A4
через C28
.
Для выполнения регрессии и аппроксимирования кривыми выполните указанный Spreadsheet Link функции в камеры листа.
Выполните функцию Spreadsheet Link, которая копирует набор выборочных данных в Рабочее пространство MATLAB двойным щелчком мыши по камере E5
и нажатие Enter. Набор данных содержит 25 наблюдений трех переменных. Среди наблюдений существует сильная линейная зависимость. На самом деле, они близки к тому, чтобы быть скалярными кратными друг другу.
Выполните функции в камерах E8
, E9
, и E10
. Функции Spreadsheet Link в этих камерах регрессируют третий столбец данных в двух других столбцах и создают:
Один вектор y
содержащие данные из третьего столбца
Матрица с тремя столбцами A
, который состоит из столбца 1с, за которым следуют остальные данные
Выполните функцию в камеру E13
. Эта функция вычисляет коэффициенты регрессии с помощью обратной косой черты MATLAB (\)
операция по решению переопределенной системы линейных уравнений, A*beta = y
.
Выполните функцию в камеру E16
. Матрично-векторное умножение MATLAB выдает регрессированный результат, fit
.
Выполните функции в камерах E19
, E20
, и E21
. Эти функции:
Сравните исходные данные с fit
.
Отсортируйте данные в порядке увеличения и примените то же сочетание к fit
.
Создайте скаляр для количества наблюдений.
Выполните функции в камерах E24
и E25
. Аппроксимируйте полиномиальное уравнение к данным для полинома пятой степени. MATLAB polyfit
функция автоматизирует настройку системы одновременных линейных уравнений и решений для коэффициентов. polyval
затем функция оценивает полученный полином в каждой точке данных, чтобы проверить качество подгонки newfit
.
Выполните функцию в камеру E28
. MATLAB plot
функция графизирует исходные данные (синие круги), регрессированный результат fit
(штриховая красная линия) и полиномиальный результат (сплошная зеленая линия).
Поскольку данные тесно коррелируют, но не совсем линейно зависимы, fit
кривая (штриховая линия) показывает близкую, но не точную аппроксимацию. Полиномиальная кривая пятой степени newfit
является более точной математической моделью для данных.
Чтобы смоделировать данные с помощью макроса VBA, выполните функции Spreadsheet Link в макросе VBA.
В ExliSamp.xls
перейдите на вкладку Sheet2. Появится лист для этого примера.
Камеры A4
вызывает макрос CurveFit
, который можно изучить в среде Microsoft Visual Basic.
Пока этот модуль открыт, убедитесь, что Spreadsheet Link надстройка включён. Чтобы включить его, смотрите Setup надстройки. После включения надстройки Project Explorer перечисляет ее в папке References.
Выполните CurveFit
макрос, дважды кликнув мышью по камере A4
и нажатие Enter. Макрос запускает функции «Spreadsheet Link». Когда макрос заканчивается, входные и выходные данные появляются в камерах листа A7:C31
.
Столбец A содержит исходные данные y
(отсортировано).
Столбец B содержит соответствующие регрессированные данные fit
.
Столбец C содержит полиномиальные данные newfit
.
MLEvalString
| MLGetMatrix
| MLPutMatrix
| plot
| polyfit
| polyval