2013-10-18 18 views
0

我有問題。 我有一個C++代碼。我必須在目標c中使用。C++ Objecive AlgLib

double[,] x = new double[,]{{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}}; 
double[] y = new double[]{0.223130,0.382893,0.582748,0.786628,0.941765,1.000000,0.941765,0.786628,0.582748,0.382893,0.223130}; 
double[] c = new double[]{0.3}; 

double epsf = 0; 
double epsx = 0.000001; 

int maxits = 0; 
int info; 

alglib::lsfitstate state; 
alglib::lsfitreport rep; 

double diffstep = 0.0001;  

// 
// Fitting with weights 
// (you can change weights and see how it changes result) 
// 

double[] w = new double[]{1,1,1,1,1,1,1,1,1,1,1}; 

alglib::lsfitcreatewf(x, y, w, c, diffstep, out state); 
alglib::lsfitsetcond(state, epsf, epsx, maxits); 
alglib::lsfitfit(state, function_cx_1_func, null, null); 
alglib::lsfitresults(state, out info, out c, out rep); 

我已經打電話給我的目標文件,在與.mm

結束,但我得到的差異錯誤。 (第一行 - 當我啓動我的變數時的預期表達式)。我不能。但我只需要這一個功能。

我希望這是這個問題的解決方案。 https://gis.stackexchange.com/questions/74567/math-algorithm-for-n-amount-points-in-objective-c

如果有人能幫助我,那將會很棒。

由於 阿曼

回答

0

即大多在開始時爲數組聲明,而不是C,C++或ObjC Java代碼。

這將是C/C++代碼:

double x[][1] = {{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}}; 
double y[] = {0.223130,0.382893,0.582748,0.786628,0.941765,1.000000,0.941765,0.786628,0.582748,0.382893,0.223130}; 
double c[] = {0.3}; 

然而,根據lsfitcreatewf函數參照here,則需要它是類型alglib::real_2d_array的。如何生成這樣的數據有一些示例here

Here以下是關於如何使用lsfit子包的一些常規示例。

+0

嘿,謝謝。嗯,現在我明白了這個問題。這個例子是在C#中。我在C++中尋找一個例子。你知道你有沒有使用過這個函數的例子(Lib)? –

+0

不,我沒有。但是你會在我鏈接的頁面上找到例子。我延長了我的回答。 – Albert

+0

好的,謝謝! –