How to remove rest of the rows of a Column once it reaches a certain value

조회 수: 2 (최근 30일)
Avik Mahata
Avik Mahata 2021년 6월 28일
댓글: Walter Roberson 2021년 6월 29일
I have an autocorrelation function that needs to be integrated only up to where the time threshold first drops below Zero.
So I have a matrix such as A = [ 1 2 7 -2 0 2 9 1 2 0 9 -5].
I want to get A1 = [ 1 2 7 ].
How can I do this?

답변 (1개)

Walter Roberson
Walter Roberson 2021년 6월 28일
AZ = A(find(~A,1)-1)
However, find can be a bit heavy. Sometimes it can be faster to do
AZ = A(1:sum(cumprod(logical(A))))
This processes the entire vector multiple times, but sometimes it can be better than find. Especially if you have a 2D array that you want to do this kind of selection for on a per-row or per-column basis.
  댓글 수: 2
Avik Mahata
Avik Mahata 2021년 6월 28일
편집: Avik Mahata 2021년 6월 28일
Thanks a lot for the reply. I just tried the second command and its giving me
AZ =[ 1 2 7 -2]
I wanted get AZ =[ 1 2 7]

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

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by