如何显示矩阵的内容?

时间:2015-05-24 03:20:57

标签: forth gforth

考虑:

: cell-matrix
 create ( width height "name" ) over , * cells allot
 does> ( x y -- addr ) dup cell+ >r @ * + cells r> + ;

这是制作矩阵的定义,然后你分配这样的值:

 5 5 cell-matrix test

然后你把价值观塞进那里......他们在那里......

36 0 0 test !

(我认为)

互联网上没有任何地方可以解释这个问题。你如何显示矩阵的内容?

2 个答案:

答案 0 :(得分:3)

如果要打印整个矩阵的内容,可以执行以下操作:

: .row ( addr u -- addr' u ) tuck 0 do @+ . loop swap cr ;
: .matrix ( u addr -- ) >body @+ rot 0 do .row loop 2drop ;

请注意,cell-matrix没有保存行数,因此您必须将此号码提供给.matrix。例如。像这样:

2 3 cell-matrix foo
3 ' foo .matrix

答案 1 :(得分:2)

逻辑上很简单:

100 0 0 test !   ok
400 1 0 test !   ok
0 0 test @ .     100 ok
1 0 test @ .     400 ok