想使用R语言,将矩阵中每一行的最大值赋值为“1”,其余值赋值为“0”
对矩阵元素按行列遍历,判断是否为最大值,然后替换,参考代码:
m1 <- matrix(c(6,5,8,4,7,8,1,5,3),nrow=3,ncol=3,dimnames=list(c("r1","r2","r3"),c("c1","c2","c3")))
print(m1)
for (i in 1:nrow(m1)){
ma=max(m1[i,])
for(j in 1:ncol(m1)){
if (m1[i,j]==ma){
m1[i,j]=1
}
else{m1[i,j]=0}
}
}
print(m1)
运行结果:
c1 c2 c3
r1 6 4 1
r2 5 7 5
r3 8 8 3
c1 c2 c3
r1 1 0 0
r2 0 1 0
r3 1 1 0