В этом примере показано, как выполнить 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. После того, как дополнение включено, Проводник Проекта перечисляет его под папкой References.
Выполните CurveFit
макрос путем двойного клика по ячейке A4
и нажатие Enter. Макрос запускает функции Spreadsheet Link. Когда макрос заканчивается, входные и выходные данные появляются в ячейках A7:C31
рабочего листа.
Столбец A содержит исходные данные y
(отсортированный).
Столбец B содержит регрессировавшие данные соответствия fit
.
Столбец C содержит полиномиальные данные newfit
.
MLGetMatrix
| MLPutMatrix
| MLEvalString
| polyfit
| polyval
| plot