2013-12-12 69 views
1

根据http://crsouza.blogspot.com.br/2012/01/decision-trees-in-c.html我用ToIntArray - 替换功能

DataTable symbols = codebook.Apply(data); 
int[][] inputs = symbols.ToIntArray("Outlook", "Temperature", "Humidity", "Wind"); 
int[] outputs = symbols.ToIntArray("PlayTennis").GetColumn(0); 

但在.NET 4.0和单声道,没有ToIntArray,还我找不到它的任何替换功能。

如何ToIntArray转换symbols或有哪些呢ToIntArray样子?

+0

我将删除我的答案,因为它是错误的,我想你应该添加自己的答案,告诉我们如何解决这个问题,以防其他人有同样的问题。来自瑞典的问候(虽然我住在悉尼..)! –

+0

也许问题是你必须先导入Accord.Math命名空间。如果你的编译器/环境仍然不支持扩展方法,你也可以尝试调用Matrix.ToArray (...) – Cesar

回答

1

如果你不想下载并将Accord framework添加到你的项目中(注意:有可能它的依赖不受Xamarin的.NET实现支持),那么幸运的是它是开源的,所以如果你只想看看公众可以使用的代码。

要回答的具体问题,.ToIntArray扩展方法(这是ToArray<int>()只是一个“别名”法)可以在这里看到:

https://code.google.com/p/accord/source/browse/trunk/Sources/Accord.Math/Matrix/Matrix.Conversions.cs

然而,.Apply.GetColumn方法(从示例代码)也是框架的一部分,因此您可能还需要查看该代码。请参阅Matrix.Common和Matrix.Selection。

0

从当前版本开始,您可以使用ToInt32()以及ToDouble(),ToSingle(),ToBoolean()等来执行数组的类型转换。