R语言10×10矩阵函数问题求助:提取元素1的索引矩阵
你的R函数问题分析与修复方案
嘿,我帮你揪出代码里的关键问题啦!咱们一步步来看:
核心问题点
- 完全忽略了输入参数:你在函数内部第一行写了
a <- matrix(sample(0:1, 100, replace = T), ncol=10),这直接把用户传入的10×10矩阵给覆盖了,函数反而自己生成了一个随机的0-1矩阵,这肯定不符合“输入为给定矩阵”的要求呀! - 判断条件可以更直观:用
a==T虽然能运行,但因为矩阵元素明确是0和1,写成a==1语义上更准确,也更容易理解。
修复后的代码
ans <- function(A){ # 直接使用传入的矩阵A,不再重新生成随机矩阵 ok <- which(A == 1, arr.ind = TRUE) return(ok) }
测试验证
咱们用一个手动构造的测试矩阵来验证效果:
# 创建测试用的10×10矩阵,手动设置几个值为1的元素 test_matrix <- matrix(0, nrow=10, ncol=10) test_matrix[2,3] <- 1 test_matrix[5,7] <- 1 test_matrix[9,1] <- 1 # 调用修复后的函数 ans(test_matrix)
运行后会返回符合要求的索引矩阵:
row col [1,] 2 3 [2,] 5 7 [3,] 9 1
内容的提问来源于stack exchange,提问作者Miikka
相关产品推荐
相关产品推荐

