-2

次のようなサンプルマトリックスがあります

 5 4 3  
 2 6 8   
 1 9 7   

そして、次のような出力が必要です

max(5*6,5*8,5*9,5*7)  // i!=j condition  
max(4*2,4*8,4*1,4*7)  
max(3*2,3*6,3*1,3*9)  

等々...

計算後に得られるこの最大値は行列形式である必要があります。一般化する必要があるため、汎用コードが必要です。

4

1 に答える 1

2

これで仕事は完了しますが、ベクトル化されたものを実行する代わりに、要求された計算を実行する行と列をループするだけであるという点で、非常に想像力に欠けるソリューションです。

sapply(1:ncol(m), function(j) sapply(1:nrow(m), function(i) max(m[i,j]*m[-i,-j])))
#      [,1] [,2] [,3]
# [1,]   45   32   27
# [2,]   18   42   72
# [3,]    8   72   42

データ:

(m <- matrix(c(5, 2, 1, 4, 6, 9, 3, 8, 7), nrow=3))
#      [,1] [,2] [,3]
# [1,]    5    4    3
# [2,]    2    6    8
# [3,]    1    9    7
于 2015-07-01T20:36:16.853 に答える