首页 新闻 会员 周边

急急急!!!!有谁会c#的,进来帮忙看个问题哈。

0
悬赏园豆:5 [已解决问题] 解决于 2015-06-15 14:17

先看一下代码: 

 class Matrix_PolyFit
    {
        public bool matrix_PolyFit(double[] x, double[] y, int X_Y_Number, int Fit_N, ref double[] ks)
        {


            //   对X_Y_Number组数据x,y进行Fit_N次多项式拟合,拟合返回多项式的系数ks 

            // x[X_Y_Number],y[X_Y_Number],ks[Fit_N+1] 

            // 
            if (Fit_N > X_Y_Number || X_Y_Number < 1)
            {
                return false;
            }
            int i, j, index, n;
            double temp;
            Fit_N++;
            double[] x2 = new double[Fit_N*Fit_N];
            double[] y2 = new double[Fit_N];
            for (i = 0, index = 0; i < Fit_N; i++)
            {
                y2[i] = 0;
                for (j = 0; j < Fit_N; j++)
                {
                    x2[index + j] = 0;
                }
                index += Fit_N;
            }
            x2[0] = X_Y_Number;
            for (i = 0; i < Fit_N; i++)
            {
                for (j = 0; j < Fit_N; j++)
                {
                    temp = 0;
                    n = i + j;
                    for (index = 0; index < X_Y_Number; index++)
                    {
                        temp += Math.Pow(x[index], n);
                    }
                    index = j;
                    for (n = i; n < Fit_N; n++)
                    {
                        if (index >= 0)
                        {
                            x2[n * Fit_N + index] = temp;
                        }
                        index--;
                    }
                }
            }
            n = Fit_N + Fit_N - 2;
            temp = 0;
            for (i = 0; i < X_Y_Number; i++)
            {
                temp += Math.Pow(x[i], n);
            }
            x2[Fit_N * Fit_N - 1] = temp;
            for (i = 0; i < Fit_N; i++)
            {
                temp = 0;
                for (j = 0; j < X_Y_Number; j++)
                {
                    temp += y[j] * Math.Pow(x[j], i);
                }
                y2[i] = temp;
            }
            return true;
        }
    }

 

这是c#的代码,帮忙看下 为什么上面定义的$x 是个二维数组吧?  double[] x2 = new double[Fit_N*Fit_N];  然后又看见下面 x2[index + j] = 0; 和 x2[0] = X_Y_Number; 然后再下面为什么又出现  x2[n * Fit_N + index] = temp; 如果翻译成php

$x2[0] 已经等于一个数值了,为什么还能 $x2[0][] = xxx

C#
清华大学副院长的主页 清华大学副院长 | 初学一级 | 园豆:28
提问于:2015-06-15 09:33
< >
分享
最佳答案
0

都是一维数组,没见到二维数组

收获园豆:4
浅草青晨 | 小虾三级 |园豆:904 | 2015-06-15 10:58

哦,刚看了下c#基础 ,x2算到最后也是一维数组吧?

清华大学副院长 | 园豆:28 (初学一级) | 2015-06-15 11:06

@清华大学副院长: 声明的时候也是一维啊!

浅草青晨 | 园豆:904 (小虾三级) | 2015-06-15 11:08

@清华大学副院长: 二维数组是两个框的,代码里没有啊

浅草青晨 | 园豆:904 (小虾三级) | 2015-06-15 11:11

@浅草青晨: 哦,我理解错了, 那就是一个一维数组 我以为c# 这样写 arr[m * n] 表示一个二维数组呢 m行 n列

清华大学副院长 | 园豆:28 (初学一级) | 2015-06-15 14:16
其他回答(1)
0

PHP不懂,帮不上忙。

收获园豆:1
我只是来看戏的 | 园豆:367 (菜鸟二级) | 2015-06-15 10:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册