列 a、b、c、および d を持つデータセットがあります。データセットを a、b でグループ化し、各グループで d が最小になるように c を見つけ、「grpstats」を次のように使用して「グループ化」できます。
grpstats(M,[M(:,1) M(:,2) ],{'min'});
d の最小値となった M(:,3) の値を見つける方法がわかりません
SQLでは、そのためにネストされたクエリを使用し、主キーを使用すると思います。Matlabでどのように解決できますか?
次に例を示します。
>> M =[4,1,7,0.3;
2,1,8,0.4;
2,1,9,0.2;
4,2,1,0.2;
2,2,2,0.6;
4,2,3,0.1;
4,3,5,0.8;
5,3,6,0.2;
4,3,4,0.5;]
>> grpstats(M,[M(:,1) M(:,2)],'min')
ans =
2.0000 1.0000 8.0000 0.2000
2.0000 2.0000 2.0000 0.6000
4.0000 1.0000 7.0000 0.3000
4.0000 2.0000 1.0000 0.1000
4.0000 3.0000 4.0000 0.5000
5.0000 3.0000 6.0000 0.2000
しかし、M(1,3) と M(4,3) は間違っています。私が探している正しい答えは次のとおりです。
2.0000 1.0000 9.0000 0.2000
2.0000 2.0000 2.0000 0.6000
4.0000 1.0000 7.0000 0.3000
4.0000 2.0000 3.0000 0.1000
4.0000 3.0000 4.0000 0.5000
5.0000 3.0000 6.0000 0.2000
結論として、3 番目の列の最小値は必要ありません。しかし、4列目の最小値に対応する値が必要です