Редактировать:
Вы можете сделать это в довольно простой вкладыш, используя ту же логику
[~, indOut] = min( abs(L)./(L>=0) );
Логика здесь:
abs(L) % Positive (absolute) values of L
./ % Element-wise divide. Note that x/0 = Inf for x>0
L>=0 % Logical array; 0 when L<0
% So: Elements where L<0 are divided by 0, and become Inf.
% Positive value is the one being divided, so never -Inf
% Elements where L>=0 are divided by 1, remain unchanged
% These elements are already positive, so abs(L) == L here.
В любом случае, вам не нужен цикл
L( L < 0 ) = Inf;
[~, indOut] = min( L );
Обратите внимание, что если вы не хотите индекс (но только минимальное значение), вы можете сделать это
m = min( L( L >= 0 ) );