필터 지우기
필터 지우기

extracting values above 0 in an array and putting them in a new array

조회 수: 10 (최근 30일)
how can i get a 1x5 array by taking values of non-zero? (e.g. taking the first column and taking the first minimum value greater than zero)?
  댓글 수: 1
Walter Roberson
Walter Roberson 2020년 7월 3일
Question: for column 4, should the output be 1.6807 as the "first" mininum value that is greater than 0? Or should it be 1.6054 because that is the minimum non-zero value in the row? Or should it be 3.8141 because that is the first non-zero value after the 0 ?

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

채택된 답변

dipak nigam
dipak nigam 2020년 7월 3일
Hey, you can use the below piece of code for your desired functionality.
a(a<=0)=inf;
minArray = min(a);
If you want to keep the original array unchanged first assign it to a temporary variable and use it to extract the result.
  댓글 수: 2
Hatim Altarteer
Hatim Altarteer 2020년 7월 3일
this returns a 1x5 array of ZEROs, i want NON-ZEROS minimum value.
Walter Roberson
Walter Roberson 2020년 7월 3일
You are incorrect, Hatim
data = [
0 0.0754 0.2159 1.6807 2.6856
0.0754 0 0.2911 1.6054 2.7275
0.2159 0.2911 0 1.8965 2.5913
1.6807 1.6054 1.8964 0 3.8141
2.6856 2.7275 2.5913 3.8141 0
];
a = data;
a(a<=0) = inf;
minArray = min(a);
disp(minArray)
0.0754 0.0754 0.2159 1.6054 2.5913
No zeros returned at all.
dipak's solution is correct.

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

추가 답변 (1개)

madhan ravi
madhan ravi 2020년 7월 3일
matrix(matrix <= 0) = inf;
Wanted = min(matrix)
  댓글 수: 6
Hatim Altarteer
Hatim Altarteer 2020년 7월 3일
편집: Hatim Altarteer 2020년 7월 3일
thanks, it was just a syntax eroor. my bad (Y)
madhan ravi
madhan ravi 2020년 7월 3일
Hatim you need to accept dipak’s answer because he was first before me. I was typing the answer in my phone so didn’t realise there was an answer already.

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

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by