Программное воспроизведение функции Evaluate из базового графического интерфейса пользователя в Matlab

При использовании инструмента «базовая подгонка» у вас есть возможность после «подгонки» оценить/оценить значение в определенных точках. Я смог воспроизвести это только до сюжетной части. Я не могу понять, как программно воспроизвести функцию «Оценить», чтобы я мог оценить значение определенных точек и использовать их в своем коде. Единственный способ, которым я могу добиться этого на данный момент, - через графический интерфейс, то есть из главного меню окна рисунка: «инструменты >> базовая настройка»

скриншот

Я не уверен, что выражаюсь достаточно ясно, но, пожалуйста, не стесняйтесь спрашивать, нужна ли вам дополнительная информация.


person Servalsoft    schedule 15.01.2013    source источник


Ответы (2)


Ответ на ваш вопрос зависит от конкретного типа модели, которую вы устанавливаете. Из вашего вопроса неясно, интересует ли вас просто полиномиальная подгонка или что-то более сложное. Для полиномов вы можете использовать функцию polyfit для получения коэффициентов и функцию polyval для оценки в определенных точках.

%construct a test signal
x = linspace(0,1,100)';
signal = 5*x.^2 + x + 0.5;
noise = 0.1*rand(100,1);
y = signal + noise;

%Plot function
plot(x,[signal,y]);

%Polynomial fitting
n = 2; % order of polynomial
coeff = polyfit(x,y,n) % I get 5.0295, 0.9786, 0.5512

%Evaluate at a certain set of points
x1 = 2.3;
polyval(coeff,x1)

Если вы подгоняете более сложную модель, вам придется использовать cfit для подгонки, которая даст вам подходящий объект. Вы должны передать этот подходящий объект функции feval, чтобы оценить функцию в определенной точке. Ознакомьтесь с документацией по этим функциям, чтобы узнать больше.

person Karthik V    schedule 16.01.2013
comment
Спасибо, Картик, последние 3 строки вашего фрагмента кода — это именно то, что я искал. - person Servalsoft; 16.01.2013

В дополнение к ответу Картика, если вы хотите продолжить использовать интерактивную подгонку, но просто хотите позже оценить вещи программно, вам следует нажать «Сохранить в рабочей области ...» в левой части снимка экрана, чтобы сохранить информацию о подгонке в рабочей области. По умолчанию это создаст переменную с именем fit, которая представляет собой MATLAB struct с полем coeff, содержащим полиномиальные коэффициенты. Затем вы можете использовать polyval для оценки полинома, например:

polyval(fit.coeff, 5); % get the value at 5
person Edric    schedule 16.01.2013
comment
Эдрик, спасибо за ваш ответ, на самом деле я выполнял работу программно, но это определенно поможет в тех случаях, когда у меня есть графический интерфейс. - person Servalsoft; 16.01.2013