C# 如何在Accord.Math Matrix课程中使用网格法?

C# 如何在Accord.Math Matrix课程中使用网格法?,c#,accord.net,C#,Accord.net,我在c中使用Visual Studio的Accord.Math名称空间 我试图在Accord.Math名称空间的Matrix类下使用方法MeshGrid。但是,即使在阅读了此处的文档之后,我也不确定如何实现此方法: 有人能告诉我如何正确地实施这个方法吗 我有两个名为xa和ya的双[,]变量,我正试图传递给MeshGrid。我已尝试使用以下方式拨打电话: var q = Matrix.MeshGrid(xa,ya); 但对于这一点,is表示不能从其用法推断类型参数 MeshGrid的输出是一个

我在c中使用Visual Studio的Accord.Math名称空间

我试图在Accord.Math名称空间的Matrix类下使用方法MeshGrid。但是,即使在阅读了此处的文档之后,我也不确定如何实现此方法:

有人能告诉我如何正确地实施这个方法吗

我有两个名为xa和ya的双[,]变量,我正试图传递给MeshGrid。我已尝试使用以下方式拨打电话:

var q = Matrix.MeshGrid(xa,ya);
但对于这一点,is表示不能从其用法推断类型参数

MeshGrid的输出是一个2元组。 T1是T[,]
T2是T[,]

Accord.NET中的网格方法类似于MATLAB和Octave的网格函数。它可用于帮助创建曲面打印。此方法接受两个向量作为输入,不幸的是,如果要传递两个双[,]矩阵而不是双[]向量,则此方法不起作用

如果您想了解它是如何工作的,以及该方法生成的输出是什么,也许我们可以使用LINQPad中的MeshGrid函数运行一个小片段。如果感兴趣,请将以下LINQpad查询定义复制并粘贴到文本文件中,并使用.linq扩展名保存:

<Query Kind="Program">
  <Reference>&lt;RuntimeDirectory&gt;\System.Windows.Forms.dll</Reference>
  <NuGetReference>Accord.Controls</NuGetReference>
  <NuGetReference>Accord.Math</NuGetReference>
  <Namespace>Accord.Controls</Namespace>
  <Namespace>Accord.Math</Namespace>
</Query>

void Main()
{
    double[] x = { 1, 2, 3 };
    double[] y = { 4, 5, 6 };

    var M = Matrix.MeshGrid(x, y);

    double[,] X = M.Item1;
    double[,] Y = M.Item2;

    DataGridBox.Show(X, "X");
    DataGridBox.Show(Y, "Y");
}
使用.linq扩展名保存此文件后,双击它以使用LINQPad打开它:

进入LINQPad后,点击F5执行上述代码段。您将获得以下输出窗口,分别显示X和Y矩阵的内容:


Accord.NET中的网格方法类似于MATLAB的网格函数。在MATLAB中,该方法接受两个向量作为输入。我担心如果你传递的是两个双[,]矩阵而不是双[]向量,它将无法按预期工作。请让我知道你到底想做什么,因为也许有更简单的方法。