Filter löschen
Filter löschen

Finding lowest value and the index from vector excluding zero and inf

2 Ansichten (letzte 30 Tage)
Hi all,
I am trying to find lowest number excluding zero and inf from a vector:
I wanna the output to be:
r= 0.5
index= 6
I tried the following but it does not give me what I want:
clearvars
clc;
x = [1 3 2;-1 inf 0.5];
[r,index] = find (min(x(:)>0));

Akzeptierte Antwort

Star Strider
Star Strider am 18 Feb. 2021
Try this:
x = [1 3 2;-1 inf 0.5];
[r,index] = min(x(x>0))
producing:
r =
0.5
index =
5
The find call is not necessary here.
  2 Kommentare
Mark Sc
Mark Sc am 18 Feb. 2021
Thanks for your answer.
The r is correct however, index should be 6..
As I would like to do x as vector , do not understand why index = 5 not 6 ?
clearvars
clc;
x = [1 3 2;-1 inf 0.5];
y = x(:);
[r,index] = min(y(y>0))
Star Strider
Star Strider am 18 Feb. 2021
My pleasure!
I disagree.
See: Indexing with a Single Index for a discussion of MATLAB matrix indexing conventions.

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