gpt4 book ai didi

F#:如何创建除 Double 之外的任何其他类型的元素矩阵

转载 作者:行者123 更新时间:2023-12-02 05:35:31 25 4
gpt4 key购买 nike

我是 F# 的初学者。我知道有一种方法可以使用 PowerPack.dll 创建双矩阵:

let B = matrix [ [ 1.0; 7.0 ];
[ 1.0; 3.0 ] ]

如何使用我自己类型的元素创建矩阵(例如使用 [,] 而不是 Double),所以它看起来像:

let B = matrix [ [ [1,2]; [3,4] ];
[ [7,8]; [5,6] ] ]

最佳答案

我同意在处理数字时应主要使用矩阵。标准非通用矩阵类型(您可以使用 matrix 函数创建)适用于 float 类型的数字。如果您想使用其他数字类型,可以使用 Matrix.Generic 模块,该模块包含处理通用矩阵(包含任何类型)的功能。

您也可以使用通用矩阵来存储元组(如果需要)。可以使用 ofList 函数创建通用矩阵。您还可以为此定义一个函数以获得更好的语法:

let anymatrix = Matrix.Generic.ofList
let B = anymatrix [ [ [1,2]; [3,4] ];
[ [7,8]; [5,6] ] ]

要使用通用矩阵,您可以使用 Matrix.Generic 模块:

let Bt = Matrix.Generic.transpose B

通常,您只会将矩阵与数字类型一起使用,因为许多运算都需要一些算术运算才能起作用。这将适用于所有基本数字类型(例如 int),您还可以使用 GlobalAssociations discussed here 为您自己的类型提供算术运算。 .

但是,如果您只想存储一些值,那么还有其他(更合适的)数据类型。您还可以使用表示可变二维数组的 Array2D

关于F#:如何创建除 Double 之外的任何其他类型的元素矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com