如何获取10×10矩阵中第83个元素的行列位置?
获取R矩阵中线性索引对应的行和列位置
在R中,矩阵默认按列优先的顺序存储元素,要根据线性索引(比如第83个元素)计算对应的行、列位置,可以用以下方法:
- 行号计算:
(目标索引 - 1) %% 矩阵行数 + 1 - 列号计算:
(目标索引 - 1) %/% 矩阵行数 + 1
针对你给出的10×10矩阵,具体代码示例如下:
set.seed(1) mat <- matrix(sample(1:10, size=100, replace=T), ncol=10) # 目标元素索引 target_idx <- 83 # 计算行、列位置 row_num <- (target_idx - 1) %% nrow(mat) + 1 col_num <- (target_idx - 1) %/% nrow(mat) + 1 # 验证结果是否正确 mat[row_num, col_num] == mat[target_idx]
运行后会得到第83个元素对应的行号是3,列号是9,验证结果返回TRUE,说明计算正确。
内容的提问来源于stack exchange,提问作者llewmills
相关产品推荐
相关产品推荐

