我在c#中使用Visual Studio的Accord.Math命名空间。
我正在尝试使用方法MeshGrid<>在Accord.Math命名空间的Matrix类下。但是,我不确定如何在阅读此处所见的文档后实现此方法: http://accord-framework.net/docs/html/M_Accord_Math_Matrix_MeshGrid__1.htm
有人能告诉我如何正确实施这种方法吗?
我有两个名为xa和ya的Double [,]变量,我试图传递给MeshGrid。我尝试过使用:
var q = Matrix.MeshGrid(xa,ya);
但是,对于这种说法,不能从它们的用法推断出类型参数。
MeshGrid的输出是一个2元组。 T1是T [,] T2是T [,]
答案 0 :(得分:0)
Accord.NET中的MeshGrid方法类似于MATLAB和Octave的网格网格函数。它可用于帮助创建表面图such as this one detailed in Octave's documentation page。这个方法接受两个向量作为输入,但遗憾的是,如果传递两个双[,]矩阵而不是double []向量,则不起作用。
如果你想看看它是如何工作的以及这个方法产生的输出是什么,也许我们使用LINQPad中的MeshGrid函数运行一个小片段。如果您有兴趣,请将以下LINQpad查询定义复制并粘贴到文本文件中,并使用" .linq"扩展:
<Query Kind="Program">
<Reference><RuntimeDirectory>\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");
}
使用&#34; .linq&#34;保存此文件后扩展,双击它以使用LINQPad打开它:
进入LINQPad后,按F5执行上面的代码片段。您将获得以下输出窗口,分别显示X和Y矩阵的内容: