2016-10-12 4 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 

Затем, у меня есть 2 варианта, где я выбрать не более двух других значений, где третий столбец является лучшим выбором (я не знаю, как этот шаг выполнить в Matlab). Затем мне нужно получить соответствующую матрицу w, которая равна w(:,:,3).

Вопрос: В целом, w содержит n no. матриц каждый w(:,:,i) - p x q размер. Я действительно запутываю, как я могу выбрать правильную матрицу w(:,:,i), которая удовлетворяет справедливому состоянию. Специально, если w(:,:,i): 5x6 и minAll Значение может быть в 3 колонках. Затем я должен повторять ту же процедуру снова и снова.

Было бы здорово, если бы кто-нибудь мог вести меня.

ответ

0

Следующие шаги:

находка Incides колонн, содержащих 0,13

экстракта этих столбцов и объединить их в новую матрицу

В этой матрице найти индексы столбцов, содержащих максимальное значение

затем получить индекс ш idx

[~,c,~]=find(minMat == minAll); 
minMat_selected= minMat(:,c); 
[~,cc,~] = find(minMat_selected == max(minMat_selected(:))); 
idx = c(cc(1)); 
w(:,:,idx) 
Смежные вопросы