Help me find the index value for first minimum value in a matrix.
조회 수: 12 (최근 30일)
이전 댓글 표시
I have a matrix
A=[ 34 67 78 88 4 15 23 67 78 56 3 2 24 67]
First minimum value in this matrix is 4. (this is first drop). Index of 4 is 5.
After 4 many minimum value is there (i.e) 2.
I don't want to consider the other minimum value 2.
I want index of first minimum value (i.e first drop) as a output...
output =( first minimum value 4 and its index is 5)
someone please suggest me a code to solve this..
댓글 수: 0
채택된 답변
Walter Roberson
2021년 3월 29일
A=[ 34 67 78 88 4 15 23 67 78 56 3 2 24 67]
find(diff(A) < 0, 1)
댓글 수: 0
추가 답변 (2개)
Bruno Luong
2021년 3월 29일
[~,idx] = min(A)
댓글 수: 5
Bruno Luong
2021년 3월 29일
Not sure your definition of "first drop", but try this
d=diff(A);
find(d(1:end-1)<=0 & d(2:end)>=0,1,'first')+1
Riley
2021년 3월 29일
편집: Riley
2021년 3월 29일
A=[ 34 67 78 88 4 15 23 67 78 56 3 2 24 67];
flag=0;
for i=1:length(A)-1
if flag==0&&A(i+1)<A(i)
flag=1;
continue;
end
if flag==1&&A(i)<A(i+1)
first_min=A(i);
idx=i;
break;
else
flag=0;
end
end
first_min
idx
Hi, OP means original poster which is you here. The code above can find the first minimum value and its indice, only if 4 is the first drop. As you can see, if the number ahead of 4 is smaller than 88, this code fails. This is not the perfect solution. Hope you can find a better one.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!