Function matrixFromFunction #
通过在每个索引处计算生成函数来创建一个矩阵。最简单的重载返回一个多维数组,只要 size 是一个数组。将 size 传递为 Matrix 或指定 format 将导致返回一个 Matrix。
Syntax #
math.matrixFromFunction(size, fn)
math.matrixFromFunction(size, fn, format)
math.matrixFromFunction(size, fn, format, datatype)
math.matrixFromFunction(size, format, fn)
math.matrixFromFunction(size, format, datatype, fn)
Where #
size: (number[] | Matrix)一个向量,给出要创建的数组在每个维度的范围。如果 size 有一个条目,则创建一个向量;如果它有两个条目,则创建一个矩形数组/Matrix;如果它有三个条目,则创建一个三维数组/Matrix,依此类推。fn: (index: number[]) => MathType将生成矩阵条目的回调函数。它会依次用矩阵每个条目的索引来调用。索引始终是一个普通数字数组,其长度与 size 相同。因此,对于向量,您将得到[0]或[1]这样的索引,而对于矩阵,您将得到[2, 0]或[1,3]这样的索引。返回值可以是任何可以放入数组或 Matrix 条目的类型,尽管如果您提供了 datatype 参数,您必须自己确保返回值的类型与此匹配。请注意,目前,您的回调 fn 将接收矩阵条目的 0 基索引,无论 matrixFromFunction 是直接从 JavaScript 调用还是通过 mathjs 表达式语言调用。format: 'dense'|'sparse'指定结果 Matrix 的存储格式。请注意,如果提供了此参数,返回值将始终是一个 Matrix(而不是可能是 Array)。datatype: string指定新矩阵条目的数据类型。如果提供了此参数,它应该是 mathjs 支持的数据类型的名称,如 math.typeOf 函数返回的那样。如果指定了此参数,调用者有责任确保 fn 返回的所有值都与此数据类型一致。
Parameters #
| Parameter | Type | Description |
|---|---|---|
size |
Array | Matrix | 要创建的矩阵的大小 |
fn |
function | 为矩阵中的每个条目调用的回调函数 |
format |
string | Matrix 存储格式,可以是 'dense' 或 'sparse' |
datatype |
string | 值的类型 |
Returns #
| Type | Description |
|---|---|
| Array | Matrix | 返回创建的矩阵 |
Throws #
Type | Description —- | ———–
Examples #
math.matrixFromFunction([3,3], i => i[0] - i[1]) // an antisymmetric matrix
math.matrixFromFunction([100, 100], 'sparse', i => i[0] - i[1] === 1 ? 4 : 0) // a sparse subdiagonal matrix
math.matrixFromFunction([5], i => math.random()) // a random vector