подбор кривой с использованием пользовательского уравнения из командной строки без использования cftool - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть некоторые данные, которые хорошо подходят для кривой, используя пользовательское уравнение из cftool. Уравнение: y = a exp (-b x) + c. Есть ли способ сделать это же уравнение доступным из командной строки? Например, использование команды fit и exp1 дает следующие результаты:

f = fit(time,T102,'exp1')

f = 

     General model Exp1:
     f(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =      0.0726  (0.0717, 0.0735)
       b =  -1.263e-05  (-4.171e-05, 1.645e-05)

Однако форма этого уравнения не вписывается в мои данные. Мне нужно иметь уравнение как f (x) = a exp (b x) + c. Я знаю, что могу получить его из cftool, но у меня есть много разных наборов данных для подбора кривой (~ 30), и я просто хочу, чтобы a, b и c возвращались из MATLAB в пользовательском уравнении f (x) = a exp (b x) + c.

1 Ответ

0 голосов
/ 12 ноября 2018

В итоге я нашел свой ответ, используя информацию из следующей ссылки: https://www.mathworks.com/help/curvefit/fit.html

  1. Создать функцию Matlab, которая содержит пользовательское уравнение для подгонки

    function y = CustomCurveFitFunction (x, a, b, c)

    y = a exp (-b x) + c;

    конец

  2. Вызовите функцию следующим образом из MATLAB

    ft = fittype ('CustomCurveFitFunction (x, a, b, c)');

    f = fit(time, y, ft);
    
...