我在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)
为5x6
且minAll
值可能在3列中。然后,我必须一次又一次地重复相同的程序。
如果有人可以指导我,那就太好了。
答案 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)