1.20 矩阵函数: "matrix.rkt"
(require htdp/matrix) | package: htdp-lib |
本实验性教学包提供对矩阵和矩阵函数的支持。矩阵就是矩形的“对象”。它被显示为图像, 就和操作图像: "image.rkt"中的图像一样。事实上,矩阵就是图像, 或者按模拟和动画: "world.rkt"的说法,是场景。
目前不存在关于矩阵的教育材料。
函数以通常(学校中数学)的方式访问矩阵:先访问行,再访问列。
这些函数没有针对效率进行优化,因此不要期望构建处理大量数据的程序。
Rectangle (X的)Rectangle(矩形)是包含X的、非空表的表,其中所有项的表都是等长的(且长度不为零)。
判断输入对象是否是矩阵
函数
(matrix-rows m) → natural-number/c
m : matrix?
求矩阵m的行数
函数
(matrix-cols m) → natural-number/c
m : matrix?
求矩阵m的列数
函数
(rectangle->matrix r) → matrix?
r : Rectangle
由Rectangle创建矩阵
函数
(matrix->rectangle m) → Rectangle
m : matrix?
由矩阵m创建rectangle
函数
(make-matrix n m l) → matrix?
n : natural-number/c m : natural-number/c l : (Listof X)
由l创建n乘m的矩阵
注意:如果像make-vector那样处理的话,make-matrix将读入可选的条目数量。
函数
(build-matrix n m f) → matrix?
n : natural-number/c m : natural-number/c
f :
(-> (and/c natural-number/c (</c m)) (and/c natural-number/c (</c n)) any/c)
函数
(matrix-ref m i j) → any/c
m : matrix? i : (and/c natural-number/c (</c (matrix-rows m))) j : (and/c natural-number/c (</c (matrix-rows m)))
取矩阵m中的(i,j)项
函数
(matrix-set m i j x) → matrix?
m : matrix? i : (and/c natural-number/c (</c (matrix-rows m))) j : (and/c natural-number/c (</c (matrix-rows m))) x : any/c
创建新矩阵,其中(i,j)位置为x,所有其他位置与m相同
函数
(matrix-render m) → Rectangle
m : matrix?
将此矩阵m呈现为字符串的rectangle
函数
(matrix-minor m i j) → matrix?
m : matrix? i : (and/c natural-number/c (</c (matrix-rows m))) j : (and/c natural-number/c (</c (matrix-rows m)))
由m创建位于(i,j)的子矩阵
1.20.1 矩阵片断
htdp/matrix教学包export snip-class对象,用于支持保存和读取矩阵片断。
值
snip-class : (instance/of matrix-snip-class%)
支持2D矩阵呈现的对象。