Заменить элементы нежелательных столбцов A
на NaN
. Затем используйте max
, чтобы найти линейный индекс максимального элемента. Наконец, преобразуйте линейный индекс в индексы строк и столбцов, используя ind2sub
.
A_index(A_index==0)=NaN; %Replacing 0s with NaNs (needed when A has non-positive elements)
A = bsxfun(@times, A, A_index); %With this, zeros (now NaNs) of A won't affect 'max'
[~ , ind] = max(A(:)); %finding the linear index of the maximum value
[r, c] = ind2sub(size(A),ind); %converting the linear index to row and column subscripts
В ≥ R2016b, вторая строка может быть записана с неявным расширением как:
A = A.*A_index;
Последние две строки также можно записать в виде:
[r,c] = find(A==max(A(:)));
, что вы найдете лучше.