Finding location of change of signs of a matrix's elements
조회 수: 17 (최근 30일)
이전 댓글 표시
Hi everbody, I have a matrix like this:
A=[0 0 0 0.33 0.33 0.33 0 0 0 -0.33 -0.33 -0.33 0 0 0];
How can i find location of change of signs? I get an error while using find and diff command. I think, i have made a mistake because of the < and > symbols. May you help me? Thanks.
댓글 수: 0
채택된 답변
Walter Roberson
2017년 2월 18일
find(diff(sign(A)))+1
to return the locations of the beginning of the new sign.
Note that this includes changing to 0, as 0 has a different sign than positive numbers or negative numbers.
댓글 수: 3
MA-Winlab
2019년 4월 6일
@Roberson, I tried your approach for finding the locations of change from 0 to 1 and from 1 to 0, but they are in one array.
So, if I have this array and want to find the locations of change from 1 to 0 (returned in an array) and the locations of change from 1 to 0 (returned in a SEPRATE array), how can I modify this line?
Thank you
A=[0 0 0 1 1 1 0 0 0 1 1 1 0 0 0];
MA-Winlab
2019년 4월 7일
Update
I figured out how to do that (in my case, the vector of 0s and 1s has an even number):
OpenClose = find(diff(sign(A))) + 1;
OneToZero = OpenClose(1:2:end)
ZeroToOne = OpenClose(2:2:end)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!