A<-matrix(c(2,12,2,22,14,45,3,25,3,7,7,18,2,45,7,17,3,1,3,11,22,12,7,5,7), 5,5)
s<-c(2,3,7)
A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 45 7 17 22
## [2,] 12 3 18 3 12
## [3,] 2 25 2 1 7
## [4,] 22 3 45 3 5
## [5,] 14 7 7 11 7
v1=which(A==2,arr.ind = TRUE)
v2=which(A==3,arr.ind = TRUE)
v3=which(A==7,arr.ind = TRUE)
nn=nrow(v1)
print("Diagonal 1")
## [1] "Diagonal 1"
for(i in 1:nn){
want=c(v1[i,1]+1,v1[i,2]+1)
x1=apply(v2, 1, function(x, want) isTRUE(all.equal(x, want)), want)
want=c(v1[i,1]+2,v1[i,2]+2)
x2=apply(v3, 1, function(x, want) isTRUE(all.equal(x, want)), want)
if(sum(x1)+sum(x2)==2){
print(v1[i,])
}
}
## row col
## 3 1
## row col
## 3 3
print("Diagonal 2")
## [1] "Diagonal 2"
for(i in 1:nn){
want=c(v1[i,1]-1,v1[i,2]-1)
x1=apply(v2, 1, function(x, want) isTRUE(all.equal(x, want)), want)
want=c(v1[i,1]-2,v1[i,2]-2)
x2=apply(v3, 1, function(x, want) isTRUE(all.equal(x, want)), want)
if(sum(x1)+sum(x2)==2){
print(v1[i,])
}
}
print("Diagonal 3")
## [1] "Diagonal 3"
for(i in 1:nn){
want=c(v1[i,1]+1,v1[i,2]-1)
x1=apply(v2, 1, function(x, want) isTRUE(all.equal(x, want)), want)
want=c(v1[i,1]+2,v1[i,2]-2)
x2=apply(v3, 1, function(x, want) isTRUE(all.equal(x, want)), want)
if(sum(x1)+sum(x2)==2){
print(v1[i,])
}
}
print("Diagonal 4")
## [1] "Diagonal 4"
for(i in 1:nn){
want=c(v1[i,1]-1,v1[i,2]+1)
x1=apply(v2, 1, function(x, want) isTRUE(all.equal(x, want)), want)
want=c(v1[i,1]-2,v1[i,2]+2)
x2=apply(v3, 1, function(x, want) isTRUE(all.equal(x, want)), want)
if(sum(x1)+sum(x2)==2){
print(v1[i,])
}
}
## row col
## 3 1