R图像()绘制矩阵旋转?

hel*_*loB 11 r image

我一直在阅读R 的文档,image()但我不明白.为什么这个矩阵:

> mat1
     [,1] [,2] [,3]
[1,]    1    0    1
[2,]    0    1    0
[3,]    0    0    0
Run Code Online (Sandbox Code Playgroud)

绘制方式如下:

> image(c(1:3), c(1:3), mat1)
Run Code Online (Sandbox Code Playgroud)

屈服于此:

在此输入图像描述

我怎样才能使布局与印刷矩阵相同?这不仅仅是让转置翻转x和y,因为它最终会出现"颠倒"的图像.

pic*_*ick 12

你可以反转矩阵,然后转置.

mat1 <- apply(mat1, 2, rev)
image(1:3, 1:3, t(mat1))
Run Code Online (Sandbox Code Playgroud)

这是令人困惑的,因为它从下往上按行绘制,但R按列向上排列矩阵.因此,第一行中从左到右的像素对应于矩阵中的第一列,自上而下.

  • 感谢您的提示,但我想知道您是否知道这个设计的合理化结束/或者它在文档中的位置?我查看了文档,我很沮丧,在绘制图像之前我无法弄清楚我应该怎么知道这个? (2认同)

小智 6

当使用如下方式将矩阵视为图像时:

m <- some matrix
Run Code Online (Sandbox Code Playgroud)

image(m) R把它颠倒了。经过一些小头痛之后,我找到了这个快速解决方案。

image(m[,nrow(m):1])
Run Code Online (Sandbox Code Playgroud)

nrow(m)给出矩阵的行数

nrow(m):1向后排列一个序列