Как получить доступ к библиотекам C ++ в кодировке Octave - PullRequest
2 голосов
/ 17 января 2020

У меня есть задача сделать некоторые скрипты совместимыми с Octave (или создать аналоги, которые работают в Octave).

Я пытаюсь обработать эту часть Matlab:

%ft = fittype( 'a+b*y*x+c*y^2', 'independent', {'x', 'y'}, 'dependent', 'z' );
%
%opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
%opts.Display = 'Off';
%opts.Lower = [0 0 0];
%
%opts.MaxFunEvals = 10000;
%opts.MaxIter = 10000;
%opts.Robust = 'Bisquare';
%opts.StartPoint = [0.12345 0.456789 0.23456];
%[fitresult, gof] = fit( [xData, yData], zData, ft, opts );
%coeffs=coeffvalues(fitresult);

Там, очевидно, есть нет прямого эквивалента этому набору инструментов от Matlab в Octave. Я могу сделать линейную и нелинейную регрессию, но не робастную. Поэтому я искал альтернативные способы.

Я обнаружил, что GSL может рассчитывать фитинги, используя тот же самый весовой надежный алгоритм. https://www.gnu.org/software/gsl/doc/html/lls.html?highlight=robust#c .gsl_multifit_robust_allo c Я думаю, что есть способы вызова библиотек GSL из Octave (пакет gsl forge не включает нужные мне функции).

Итак, мои вопросы: а) Работая над windows, могу ли я заставить октаву использовать эти библиотеки? (Я знаю, что это может вызвать функции C ++). И могу ли я включить эти библиотеки, чтобы дать ppl с "just" octave "package", чтобы он работал вместе?

b) Есть ли какие-либо указания о том, как go таким образом? В документации описано только, как создавать файлы .oct (код c ++), использующие библиотеки octave и c ++. Но я бы хотел остаться в пределах октавного кода (и файлов .m).

...