选择满足公平条件的正确矩阵

时间:2016-10-12 01:29:55

标签: matlab matrix

我在3D中设置了w矩阵。

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

然后,我有2个选项,我选择最多其他两个值,其中第3列是最佳选择(我不知道这个步骤如何在Matlab中执行)。然后,我必须得到相应的w矩阵,即w(:,:,3)

问题:一般情况下,w包含n否。每个w(:,:,i)的矩阵大小为p x q。我真的很困惑我如何选择满足公平条件的正确w(:,:,i)矩阵。特别是,如果w(:,:,i)5x6minAll值可能在3列中。然后,我必须一次又一次地重复相同的程序。

如果有人可以指导我,那就太好了。

1 个答案:

答案 0 :(得分: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)