2013-08-14 3 views
1

Я хочу использовать fit в MATLAB для двух измерений. Я определил функцию отдельно, а затем вызвал ее с помощью fittypeповерхность (2d) подходит к MATLAB с анонимной функцией

x имеет две колонки!

f=fittype('@(x)myfun(beta1, beta2,beta3, x)') 

, а затем настроить в параметрах мою начальную точку и алгоритм.

[results, goodness]=fit(x, zdata,f, options) затем использовать, но у меня есть ошибка

??? Слишком много входов для функции FITTYPE.

Ошибка в ==> соответствует 443 errstr = handleerr (errid, errmsg, suppresserr);

Я также попытался с [results, goodness]=fit([x(:,1), x(:,2)], zdata,f, options),

и по-прежнему имеют те же проблемы.

Я использовал fit -all

XDATA должна быть матрица с одного до двух столбцов.

Ошибка в ==> подходит на 115 ErrStr = handleerr ('CurveFit: пригонки: xDataMustBeColumnVector', ...

для меня звучит meaningles, так как у меня х в две колонки !!!!

, а затем which fit -all

/Applications/matlab/MATLAB_R2010a.app/toolbox/curvefit/curvefit/fit.m /Applications/matlab/MATLAB_R2010a.app/toolbox/stats/@ProbDistUnivParam/fit.m% ProbDistUnivParam метод /Applications/matlab/MATLAB_R2010a.app/toolbox/stats /@NaiveBayes/fit.m% NaiveBayes метод /Applications/matlab/MATLAB_R2010a.app/toolbox/stats/@gmdistribution/fit.m метод% gmdistribution

могли бы вы мне помочь в использовании fitfittype и, чтобы соответствовать моим 2 измерения данных? {Пожалуйста, не вводите меня meshgrid и другие команды.}

+0

только в простом Кстати, не могли бы вы рассказать мне, как определить анонимную функцию для приступа в посадке с подходящим типом? – user1331843

ответ

1

Вам нужно добавить параметр 'numindep' = 2, который указывает, что ваша подгонка для поверхности (т.е. имеет две независимые переменные).

Вот пример использования вашей функции с данными Франка, используя строку:

load franke 
ft = fittype('myfun(beta1, beta2, beta3, [x, y])', 'numindep', 2) 
[results, goodness] = fit([x, y], z, ft) 

Вот пример использования вашей функции с данными Франка, используя анонимную функцию:

load franke 
ft = fittype(@(beta1,beta2,beta3, x, y)myfun(beta1, beta2,beta3, [x, y]), 'numindep', 2) 
[results, goodness] = fit([x, y], z, ft) 
Смежные вопросы