当前位置: 首页>>代码示例>>C#>>正文


C# Matrix.get方法代码示例

本文整理汇总了C#中Matrix.get方法的典型用法代码示例。如果您正苦于以下问题:C# Matrix.get方法的具体用法?C# Matrix.get怎么用?C# Matrix.get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Matrix的用法示例。


在下文中一共展示了Matrix.get方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: multiply

    public void multiply(Matrix multipliedMatrix)
    {
        if (multipliedMatrix.getLength(0) != matrix.GetLength(1))
        {
            throw new IndexOutOfRangeException();
        }

        Matrix newMatrix = new Matrix(matrix.GetLength(0), multipliedMatrix.getLength(1));

        for (int row = 0; row < matrix.GetLength(0); row++)
        {
            for (int col = 0; col < multipliedMatrix.getLength(1); col++)
            {
                int result = 0;
                for (int multipliedRow = 0; multipliedRow < matrix.GetLength(1); multipliedRow++)
                {
                    result += matrix[row, multipliedRow] * multipliedMatrix.get(multipliedRow, col);
                }

                newMatrix.set(row, col, result);
            }
        }

        matrix = newMatrix.getMatrix();
    }
开发者ID:shnogeorgiev,项目名称:Software-University-Courses,代码行数:25,代码来源:Matrix.cs

示例2: add

    public void add(Matrix addedMatrix)
    {
        if (addedMatrix.getLength(0) != matrix.GetLength(0) &&
            addedMatrix.getLength(1) != matrix.GetLength(1))
        {
            throw new IndexOutOfRangeException();
        }

        for (int row = 0; row < matrix.GetLength(0); row++)
        {
            for (int col = 0; col < matrix.GetLength(1); col++)
            {
                matrix[row, col] += addedMatrix.get(row, col);
            }
        }
    }
开发者ID:shnogeorgiev,项目名称:Software-University-Courses,代码行数:16,代码来源:Matrix.cs

示例3: recomputeIntentAdCtr

        private static double recomputeIntentAdCtr(int ad, int user, Matrix ad_muid_click, Matrix ad_muid_view, Matrix intent_muid, CF filter)
        {
            int principalIntent = 0;
            double principalScore = double.MinValue;

            foreach (int intent in intent_muid.hashMap[user].Keys)
            {
                double score = intent_muid.get(intent, user);

                if (score > principalScore)
                {
                    principalScore = score;
                    principalIntent = intent;
                }
            }
            double view = 0;
            double click = 0;
            foreach (int muid in intent_muid.hashMap.Keys)
                if (intent_muid.hashMap[muid].ContainsKey(principalIntent))
                    if (ad_muid_click.contains(ad, muid))
                    {
                        view += ad_muid_view.get(ad, muid);
                        click += ad_muid_click.get(ad, muid);
                    }
            return click / view;
        }
开发者ID:chexia,项目名称:CF,代码行数:26,代码来源:Tester.cs

示例4: predictUserAdCtr

        private static double predictUserAdCtr(int user, int ad, Matrix intent_muid, CF filter)
        {
            int principalIntent = 0;
            double principalScore = double.MinValue;

            double ctrSum = 0;
            double denom = 0;

            foreach (int intent in intent_muid.hashMap[user].Keys)
            {
                double score = intent_muid.get(intent, user);
                //double ctr = filter.predict(intent, ad);
                //ctrSum += score * ctr;
                //denom += score;

                if (score > principalScore)
                {
                    principalScore = score;
                    principalIntent = intent;
                }
            }
            double rtn = filter.predict(principalIntent, ad);
            return rtn;
        }
开发者ID:chexia,项目名称:CF,代码行数:24,代码来源:Tester.cs

示例5: testFixedBlock

 public static double testFixedBlock(int numUsr, int numAd, Matrix ad_muid_click, Matrix ad_muid_view, Matrix intent_muid, CF filter, StreamWriter writer, string outputFile = "C:\\Users\\t-chexia\\Desktop\\blocktest\\blockTestOutput.txt")
 {
     //StreamWriter writer = new StreamWriter(outputFile, true);
     int tries = 10;
     double[] apes = new double[tries];
     for (int i = 0; i < tries; i++)
     {
         HashSet<int> userSample = ad_muid_click.randomSubset(numUsr, 1);
         HashSet<int> adSample = ad_muid_click.randomSubset(numAd, 0);
         double numClick = 0;
         double numView = 0;
         double numPredictedView = 0;
         double numPredictedClick = 0;
         foreach (int user in userSample)
         {
             foreach (int ad in adSample)
             {
                 if (!ad_muid_click.contains(ad, user) || !intent_muid.hashMap.ContainsKey(user))
                     continue;
                 numClick += ad_muid_click.get(ad, user);
                 numView += ad_muid_view.get(ad, user);
                 double ctr = predictUserAdCtr(user, ad, intent_muid, filter);
                 if (double.IsNaN(ctr))
                     continue;
                 double xview = ad_muid_view.get(ad, user);
                 double xclick = ad_muid_click.get(ad, user);
                 numPredictedView += ad_muid_view.get(ad, user);
                 numPredictedClick += ctr * ad_muid_view.get(ad, user);
                 //double dummy = recomputeIntentAdCtr(ad, user, ad_muid_click, ad_muid_view, intent_muid, filter);
                 //if (ad_muid_click.get(ad, user) != 0)
                 //    dummy += 0;
             }
         }
         double trueCTR = numClick / numView;
         if (trueCTR == 0)
         {
             apes[i] = 1;
             continue;
         }
         double predictedCTR = numPredictedClick / numPredictedView;
         apes[i] = Math.Abs(trueCTR - predictedCTR) / trueCTR;
         if (double.IsNaN(apes[i]))
             apes[i] = 1;
         Console.WriteLine("iteration:{0}\t trueCTR:{1}\t predictedCTR:{2}\tnumUser:\tnumAd:{4}", i, trueCTR, predictedCTR, numUsr, numAd);
         lock (writer)
         {
             writer.WriteLine("iteration:{0}\t trueCTR:{1}\t predictedCTR:{2}\tnumUser:{3}\tnumAd:{4}", i, trueCTR, predictedCTR, numUsr, numAd);
         }
     }
     double sum = 0;
     foreach (double i in apes)
         sum += i;
     double avg = sum / tries;
     Console.WriteLine("avg:{0}\tnumUser:{1}\tnumAd:{2}", avg, numUsr, numAd);
     //if (double.IsNaN(avg))
     //    return 0;
     lock (writer)
     {
         writer.WriteLine("avg:{0}\tnumUser:{1}\tnumAd:{2}", avg, numUsr, numAd);
     }
     //writer.Close();
     return avg;
 }
开发者ID:chexia,项目名称:CF,代码行数:63,代码来源:Tester.cs

示例6: compSigMatEntries

 /* produces signature matrix from original matrix, for compression purposes
  * @arguments: takes in the original matrix
  */
 private void compSigMatEntries(Matrix utilMat)
 {
     int[] bandArr = new int[b];
     for (int i=0;i<b;i++)
         bandArr[i]=i;
     Parallel.For<Dictionary<int, Dictionary<int, int>>>(0, b,
                                                         () => new Dictionary<int, Dictionary<int, int>>(),
                                                         (bandInd, foo, sigMatLocal) =>
                                                         {
                                                             sigMatLocal[bandInd] = new Dictionary<int, int>();
                                                             int[][] currBand = compRandVec(utilMat.GetLength(0));
                                                             for (int col = 0; col < this.numSets; col++)
                                                             {
                                                                 string tmpHash = "";
                                                                 for (int vecInd = 0; vecInd < r; vecInd++)
                                                                 {
                                                                     double result = 0;
                                                                     for (int row = 0; row < utilMat.GetLength(0); row++)
                                                                     {
                                                                         if (utilMat.get(row, col) == -1)
                                                                             continue;
                                                                         result += currBand[vecInd][row] * utilMat.get(row, col);
                                                                     }
                                                                     if (result >= 0)
                                                                         tmpHash += 1;
                                                                     else
                                                                         tmpHash += 0;
                                                                 }
                                                                 int hashCode = Convert.ToInt32(tmpHash, 2);
                                                                 sigMatLocal[bandInd].Add(col, hashCode);
                                                             }
                                                             return sigMatLocal;
                                                         },
                                                         (sigMatLocal) =>
                                                         {
                                                             foreach (int bandInd in sigMatLocal.Keys)
                                                             {
                                                                 foreach (int colInd in sigMatLocal[bandInd].Keys)
                                                                 {
                                                                     lock(this.sigMat){
                                                                     this.sigMat[bandInd].Add(colInd, sigMatLocal[bandInd][colInd]);
                                                                     }
                                                                     lock(this.revSigMat){
                                                                     this.revSigMat[bandInd].Add(sigMatLocal[bandInd][colInd], colInd);
                                                                     }
                                                                 }
                                                             }
                                                         });
 }
开发者ID:chexia,项目名称:CF,代码行数:52,代码来源:LSH.cs


注:本文中的Matrix.get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。