2016-10-12 8 views
1

w行列を3Dで設定しました。公正な条件を満たす右の行列を選択してください

w(:,:,1) = 
    0.7791 0.0956 0.4664 
    0.4257 0.4965 0.6954 

w(:,:,2) = 
    0.7791 0.1300 0.4749 
    0.4257 0.7335 0.4552 

w(:,:,3) = 
    0.8823 0.7335 0.4664 
    0.3944 0.1300 0.6954 

w(:,:,4) = 
    0.8823 0.4965 0.4749 
    0.3944 0.0956 0.4552 

各マトリックスの各行の最小値を取得したいと考えています。

minEach=min(w,[],2); 
minMat=reshape(minEach,[2 4]) 

それは

minMat =  
    0.0956 0.1300 0.4664 0.4749 
    0.4257 0.4257 0.1300 0.0956 

を与える今、私は列の各値が他の列よりもかなり良くなければならないことを意味しており、かなり高い値を持つ列を選択します。たとえば、4番目の列は最良の値ですが、他の値は低い値です。だから、私がしたことは、私は各列の最小値を取得し、最大値を選択します。

minAll=max(min(minMat)) 
minAll =  
    0.1300 

はその後、私は(私は、このステップは、MATLABで実行する方法がわからない)私は3番目の列が最良の選択である他の2つの値の最大値を選択する2つのオプションがあります。次に、対応するw行列を取得する必要があります。これはw(:,:,3)です。

質問:一般に、wnを含みます。マトリックスのそれぞれw(:,:,i)p x qサイズです。公正な条件を満たす正しいw(:,:,i)行列を選択する方法を私は本当に混乱させています。特に、w(:,:,i)5x6であり、minAllの値が3列である可能性があります。それから、同じ手順を何度も何度も繰り返さなければなりません。

誰かが私を導くことができたらうれしいです。

答えて

0

次のステップは、次のとおりこれらの列を抽出し、最大値を含む列のインデックスを見つけるこの行列において新しいマトリックスに

それらを連結0.13

を含む列の

検索が入射

は、次にW idx

[~,c,~]=find(minMat == minAll); 
minMat_selected= minMat(:,c); 
[~,cc,~] = find(minMat_selected == max(minMat_selected(:))); 
idx = c(cc(1)); 
w(:,:,idx) 
のインデックスを得ます
関連する問題