#matlab #matrix
#matlab #матрица
Вопрос:
У меня есть набор 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 варианта, в которых я выбираю максимум из двух других значений, где 3-й столбец является лучшим выбором (я не знаю, как этот шаг выполняется в Matlab). Затем я должен получить соответствующую w
матрицу, которая есть w(:,:,3)
.
Вопрос: В общем, w
включает n
в себя количество матриц, каждая w(:,:,i)
из которых имеет p x q
размер. Я действительно не понимаю, как я могу выбрать правильную w(:,:,i)
матрицу, которая удовлетворяет справедливому условию. В частности, if w(:,:,i)
is 5x6
и minAll
значение могут быть в 3 столбцах. Затем я должен повторять ту же процедуру снова и снова.
Было бы здорово, если бы кто-нибудь мог меня направить.
Ответ №1:
Следующие шаги:
найдите инкиды столбцов, содержащих 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)