0
주 대각선을 따라 최대 값을 갖는 행렬 X가 있습니다. 먼저, 하나의 행 i를 샘플링하고 주 대각선 값, 즉 max! = X [i, i]를 제외하고 행 i에 따른 최대 값을 선택하려고합니다.주 대각선의 값을 제외한 행렬의 최대 값을 샘플로 만듭니다.
아래 코드는 일반적으로 결과를하지만 종종 오류가 있습니다 Error in if (MAX < l[k]) { : missing value where TRUE/FALSE needed
# initial values
n = 10
pop = runif(n,min =0,max =1)
D = matrix(rnorm(n*n,0,0.2),nrow=n)
str_mat = abs(D)
for (l in 1:n) {
str_mat[l,l] = 1
}
int_mat = matrix(rbinom(n*n,1,z),n,n) ##z takes the values 0.1 - 0.9
for (j in 1:n) {
int_mat[j,j] = 1
}
X = (int_mat*str_mat)*pop
b = c(1:n) #creating a vector with the length being the dimensions of the matrix
a = sample(b,1)## sampling one value from the vector
if (sum(int_mat[a,])< n)
{
### int_mat is a binary matrix
break
}}
l = X[a,]
## Ensuring the maximum value picked is not on the main diagonal
MAX = 0
j = 1
for (k in 1:length(l)) {
if(k!=a) {
if (MAX<l[k]) {
MAX = l[k]
j = k
}
}
}
ABX 란 무엇입니까? 컨텍스트 및 데이터를 추측 할 필요없이 R로 실행할 수있는 최소 ** 재현 가능한 ** 예를 제공해주세요. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
예, 재현 할 수있는 최소한의 예제를 제공해야합니다. 그냥 임의의 시드 정수를 사용하여 a, b, X를 선언하십시오. – smci
또한 차원 n의 크기가 얼마나 크며 그 값의 범위에 대해 무엇을 알 수 있습니까? X가 너무 크지 않다면 복사본을 만들고'diag (X2) <- -Inf'를 설정할 수 있습니다. 이제 주 대각선에서 최대 값을 얻을 수 없습니다. 그리고 그것이 크다면 아마도 희소 행렬 표현을 사용할 수있을 것입니다. – smci