【发布时间】:2017-09-08 19:17:52
【问题描述】:
我正在尝试填充一个矩阵,以便每个元素都是一个由其坐标(行、列)组成的字符串。
即
[ '1,1' '1,2' '1,3' ]
[ '2,1' '2,2' '2,3' ]
[ '3,1' '3,2' '3,3' ]
我已经能够用方阵来做到这一点,但如果我改变行数或列数,它就不够健壮了。
这是我目前所拥有的
#Works but only with a square matrix
x <- 20 #Number of rows
y <- 20 #Number of columns
samp <- 200 #Number of frames to sample
grid = matrix(data = NA,nrow = x,ncol = y)
for (iter_col in 1:y){
for (iter_row in 1:x){
grid[iter_col,iter_row] = paste(toString(iter_row),toString(iter_col),sep = ',')
}
}
我正在使用它来随机采样一个网格,并将其叠加在图像上以用于细胞计数方法。所以我还没有任何数据。并非所有这些网格都具有相同数量的行和列。
你能帮我把它变得更灵活吗?我在 R 方面的背景有点欠缺,所以我的解决方案就在我面前......
谢谢!
编辑
grid[iter_col,iter_row] 中的变量顺序错误。一旦它们被切换,它就适用于不同维度的矩阵。
感谢 G5W 发现该错误。
【问题讨论】:
-
您所做的应该使用非方阵,除非您切换了参数,首先是行,然后是列
grid[iter_row,iter_col] -
感谢您帮我解决这个问题。现在可以了!
-
grid[] <- paste(row(grid), col(grid), sep = ', ') -
@rawr - 这应该是一个答案 - 这是迄今为止最简单的方法。
标签: r for-loop matrix coordinates