index problem while sort
조회 수: 13 (최근 30일)
이전 댓글 표시
I am trying to sort some positive values from one array and finding the index of that.
Omega=[1.528 -1.528 0.792 -0.792];
[NN,ind]=sort(Omega(Omega>=0));
Answer:
NN=[0.792 1.528]
but
ind=[2,1] is coming which is wrong. It should ind=[3,1].
Please help regarding this.
댓글 수: 0
채택된 답변
Dyuman Joshi
2024년 2월 1일
편집: Dyuman Joshi
2024년 2월 1일
"ind=[2,1] is coming which is wrong."
It is correct.
The input to sort() only has 2 elements, so the expectation to get [3 1] as the output is misplaced -
Omega=[1.528 -1.528 0.792 -0.792];
Omega(Omega>=0)
I assume you want to get the indices of these particular values from the original array, in that case, try this -
NN=sort(Omega(Omega>=0))
[~,idx] = ismember(NN,Omega)
However, the values here are obtained directly from the original array via indexing, so ismember() works here.
추가 답변 (1개)
VBBV
2024년 2월 1일
이동: Dyuman Joshi
2024년 2월 1일
Here is another way to get the indices without overhead of using ismember function
Omega=[1.528 -1.528 0.792 -0.792];
[NN,ind]=sort(Omega)
ind(NN>0)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!