摘要:
其他矩阵操作我们将简单的介绍一些F# PowerPack中提供的关于矩阵的有用的函数与操作符用来总结这部分内容。下面的列表给出了一组相似函数的使用示例。逐点操作Matrix.cptMax Matrix.cptMin Operators: + and .*matrix -> matrix -> matrix这些函数与操作对作为参数传入的两个矩阵的对应元素执行位操作并将结果作为一个矩阵返回。函数cptMax和cptMin分别返回矩阵中最大与最小的元素,+ 执行加操作,.*则执行乘操作。注意:操作*是用在矩阵乘法上。逻辑聚合Matrix.forall Matrix.exists(floa 阅读全文
摘要:
使用矩阵Matrix是一种可变类型,因此它可以在创建后被修改。当你必须要修改矩阵式,最好的方法就是一次性的修改,修改后将之视为不可变的(例如:当矩阵作为函数结果被返回时,而此函数是使用可变性来实现的)。这样的话,你会在构造是得到好的性能,同时你可以保持代码的其余部分透明地引用它。用序号访问矩阵元素下面的代码展示了直接创建一个4x4的邻接矩阵的方法,此邻接矩阵来自于本文介绍部分所讨论的表示图的两个矩阵(尽管后面我们会看到一种更简单的方法来作这个):1: let m = Matrix.zero 4 4 2: val m : matrix = matrix [ ... ] 3: 4: m.[0, 0 阅读全文
摘要:
在本系列的上篇文章中,我们了解了complex和BigRational类型,它们都是位于F# PowerPack中的数字类型。除了这两种,PowerPack库也包含了一种名为matrix的类型,此类型表示一种由浮点数组成的二维矩阵。在这篇文章中,你将学会在F#中如何使用矩阵,如何使用F#PowerPack中提供的相关函数。我将用一个例子来介绍此语言库,此例子使用所谓的邻接矩阵来展示图。如果你对这些概念不熟悉,请不要担心。这个其实很简单,当看过这个例子后,你将会对它很清楚。此矩阵代表通过一条边连接两个顶点的图。很多矩阵类型中的标准操作在邻接矩阵中都是可用的,因此这篇指南将覆盖下面一些方面:创建l 阅读全文