У меня есть следующий код:
f=function(a,b) det((rbind(cbind(a,b),c(b,2))))
K=matrix(0,nrow(x),1)
G=matrix(0,length(X),1)
for( i in 1:length(X) )
{
for( j in 1:nrow(x) )
{
K[j,]=f(X[[i]],x[j,])
}
G[i,]=max(K)
}
, где X
- это список матриц, а x
- это матрица.
Как я могу использовать функцию apply()
, чтобы получить более быстрые результаты?
EDIT
Пусть матрица списка X
будет следующей:
3 0 0
0 3 0
0 0 3
и матрица x
имеет следующие строки:
0 0 0
1 1 1
Затем мы создаем следующие матрицы:
3 0 0 0
0 3 0 0
0 0 3 0
0 0 0 2
3 0 0 1
0 3 0 1
0 0 3 1
1 1 1 2
Затем мы найдем детерминанты для них обоих, то есть 54
и 27
соответственно.
Итак, я выбираю 54
, так как 54>27
.
Следовательно, предпочтительным выводом будет q
такой, что q=54
.
Но у меня есть много матриц в списке X
и много строк в матрице x
.