如何在 Racket 中切割矩阵的一部分?

How to cut a part of a matrix in Racket?

假设您在 Racket 中有一个向量的向量(矩阵),并且您只对它的特定部分感兴趣(例如 5x5 矩阵中的 3x3)。 您如何“获取”该矩阵的那一部分?

使用vector-copy.

#lang racket

(define A (vector (vector 11 12 13 14 15)
                  (vector 21 22 23 24 25)
                  (vector 31 32 33 34 35)
                  (vector 41 42 43 44 45)))

(for/vector ([i (in-range 1 3)])      ; row 1 and 2
  (vector-copy (vector-ref A i) 1 4)) ; columns 1, 2 and 3

结果:

'#(#(22 23 24) 
   #(32 33 34))