多语言展示
当前在线:1691今日阅读:155今日分享:35

怎么能够得到矩阵的块矩阵?

给定一个36*26的矩阵,如下图。那么,怎么用计算机构造这个矩阵的块矩阵呢?比如,如果需要指定第2行到第10行、第3列到第12列之间的矩阵,怎么办到呢?下面,开始试验。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

先把矩阵输入到Mathematica里面——juzhen。其实,矩阵就是二维列表。

2

拿出矩阵的前20行的数据,得到一个20*26的矩阵:juzhen[[1 ;; 20]]

3

如果要拿出矩阵的前16列数据,就得到一个36*16的矩阵:juzhen[[All, 1 ;; 16]]

4

那么,如果想要获取矩阵左上角那个6*6的方形矩阵,可以这样写代码:juzhen[[1 ;; 6, 1 ;; 6]]

5

如果需要指定第2行到第10行、第3列到第12列之间的矩阵,则可以写为:juzhen[[2 ;; 10, 3 ;; 12]]

图片分离通道
1

给出一个图片的图片数据——data。

2

看看这幅图片是几通道的:data[[1, 1]] // Length结果是4通道的。

3

单独把第二个通道的数据提取出来:data2 = data[[All, All, 2]];并还原为图像:data2 // Image注意,单通道的图片,都是灰度图。

4

把四个通道的数据都分离出来,就得到四幅图:Image[#] & /@ (data[[All, All, #]] & /@ {1, 2, 3, 4})

注意事项

注意,块矩阵,不仅可以用于分离图像通道,还可以把单通道的图像数据分为若干块矩阵,进而结合矩阵乘法,进行特殊的变换。

推荐信息