Как использовать применить в данной функции - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующий код:

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.

...