Scheme 如何在球拍中切割矩阵的一部分?

Scheme 如何在球拍中切割矩阵的一部分?,scheme,racket,Scheme,Racket,假设你在球拍中有一个向量向量(矩阵),你只对它的一个特定部分感兴趣(比如5x5矩阵中的3x3)。 你如何“获取”矩阵的那一部分呢?使用向量拷贝 #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

假设你在球拍中有一个向量向量(矩阵),你只对它的一个特定部分感兴趣(比如5x5矩阵中的3x3)。
你如何“获取”矩阵的那一部分呢?

使用
向量拷贝

#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))

非常感谢。这实际上是如何工作的?你为什么写“[A行]”?再看一遍,我发现它不起作用!我修改了解决方案,使用
(vector ref A I)
获取第I行,然后使用
vector copy
复制相关列。