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


C# Matrix.GetRowVector方法代码示例

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


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

示例1: RecognizeAsynchronously

 public static Matrix RecognizeAsynchronously(Matrix weights, Vector input)
 {
     Random rand = new Random(DateTime.Now.Millisecond);
     Vector oldOutput = input.Clone();
     Vector newOutput = input.Clone();
     int iterations = 0;
     int equalTimes = 0;
     while (true)
     {
         Console.WriteLine("iteration: {0}", iterations++);
         Console.WriteLine(oldOutput);
         for (int i = 0; i < input.Length; ++i)
         {
             newOutput[i] = weights.GetRowVector(i).ArrayMultiply(newOutput).Sum() >= 0 ? +1 : -1;
         }
         Console.WriteLine(newOutput);
         if (newOutput.SequenceEqual(oldOutput)) //equalTimes += 1;
         //else equalTimes -= 1;
         //if (equalTimes >= 5)
         {
             Console.WriteLine("Old and new are equal");
             Matrix recognized = newOutput.ToMatrixByColumns(columnSize: (int)Math.Sqrt(input.Length));
             return recognized;
         }
         oldOutput = newOutput.Clone();
     }
 }
开发者ID:smilingjb12,项目名称:Hopfield,代码行数:27,代码来源:Recognizer.cs

示例2: RecognizeSynchronously

 public static int RecognizeSynchronously(Matrix weights, Vector input, Vector[] samples)
 {
     Console.WriteLine("Recognize()");
     Console.WriteLine("input:");
     Vector oldOutput = input.Clone();
     int recognizedSampleIndex;
     int iterations = 0;
     while (true)
     {
         iterations += 1;
         Console.WriteLine("iteration: {0}", iterations);
         Vector newOutput = oldOutput.Clone();
         for (int r = 0; r < weights.RowCount; ++r)
         {
             Vector weightsRow = weights.GetRowVector(r);
             newOutput[r] = weightsRow.ArrayMultiply(oldOutput).Sum() >= 0 ? +1 : -1;
         }
         if (newOutput.SequenceEqual(oldOutput))
         {
             for (int j = 0; j < samples.Length; ++j)
             {
                 if (samples[j].SequenceEqual(newOutput))
                 {
                     recognizedSampleIndex = j;
                     Console.WriteLine("Recognized to be {0}", j);
                     return recognizedSampleIndex;
                 }
             }
         }
         //Console.WriteLine("output:");
         //Console.WriteLine(newOutput.ToPrettyString());
         oldOutput = newOutput.Clone();
         if (iterations > 100)
         {
             Console.WriteLine("Coulnd't recognize");
             return -1;
         }
     }
 }
开发者ID:smilingjb12,项目名称:Hopfield,代码行数:39,代码来源:Recognizer.cs

示例3: LLTSolve

    // this is from https://ece.uwaterloo.ca/~ece204/howtos/forward/ hehehh
    private Vector LLTSolve(Matrix L, Vector b)
    {
        int i = 0;
        int n = b.Count();
        // forward sub to solve Lz = b
        Vector z = Vector.Zeros(n);

        for (i = 0; i < n; i++)
        {
            z[i] = (b[i] - (L.GetRowVector(i) * z)) / L[i, i];
        }

        // back sub to solve L'x = z
        Vector x = Vector.Zeros(n);
        var Lt = Matrix.Transpose(L);

        for (i = n-1; i >= 0; i--)
        {
            x[i] = (z[i] - (Lt.GetRowVector(i) * x)) / Lt[i, i];
        }

        return x;
    }
开发者ID:smokelore,项目名称:UnityPointCloud,代码行数:24,代码来源:PointCloud.cs


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