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

조회 수: 2 (최근 30일)
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));

채택된 답변

Star Strider
Star Strider 2021년 2월 18일
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
Mark Sc
Mark Sc 2021년 2월 18일
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 2021년 2월 18일
My pleasure!
I disagree.
See: Indexing with a Single Index for a discussion of MATLAB matrix indexing conventions.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by