Filter löschen
Filter löschen

Getting lowest postive number in array with it's index

1 Ansicht (letzte 30 Tage)
Mark Sc
Mark Sc am 21 Mär. 2021
Kommentiert: Stephan am 21 Mär. 2021
Hi,
I am trying to get lowest postive number from array , and it's index,
I got the correct lowest postive number but due to introducing of greater than sign >, the indicies numbering changed, can anyone tell me how could I obtain lowest postive number with keeping and getting correct index...
I attach the code below... (Please remember it's a part from a code, and i need to get the values as written below)
clearvars;
clc;
S=[-6.3e7 -0.0001e7 inf;5.2545 -.2996e7 inf];
[m,idx]=min(S(S(:)>0)); % THE RESULT IS CORRECT BUT INDEX IS WRONG ... INDEX SHOULD BE 2
% I UNDERSTAND NOW THE INDEX IS CHANGED AS I INTRODUCED >0 BUT I WOULD LIKE TO GET THE INDEX FROM S(:) NORMAL

Akzeptierte Antwort

Stephan
Stephan am 21 Mär. 2021
Bearbeitet: Stephan am 21 Mär. 2021
S=[-6.3e7 -0.0001e7 inf;5.2545 -.2996e7 inf]
m_idx = [min(S(S>0)), find(S==min(S(S>0)))]
  2 Kommentare
Mark Sc
Mark Sc am 21 Mär. 2021
Thanks for your answer...
It works, however, I need to have the output as two separate varaibales,
any suggestions??
I would use
min_val=m_idx(1);
idx=m_idx(2)
but if you have a direct way to obtain such thing, please share
but anyway.. thank you so much
Stephan
Stephan am 21 Mär. 2021
S=[-6.3e7 -0.0001e7 inf;5.2545 -.2996e7 inf]
[m, idx] = myFun(S)
function [m, idx] = myFun(S)
m = min(S(S>0));
idx = find(S==min(S(S>0)));
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by