closest value to zero excluding the first one?

If given a long vector of values. How can I find the index of the closest value to zero excluding the first value of the vector out of our list of stuff to search for

댓글 수: 2

I am attaching an example variable and the answer your code should result in should be 175 or the 174 index.
I = find(diff(dis_y>=0),1);

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

 채택된 답변

Ali Almakhmari
Ali Almakhmari 2023년 1월 12일

0 개 추천

"dis_y" being the variable:
I = find(diff(dis_y>=0),1);

댓글 수: 1

That is NOT your question asks for, that is first consecutive points where 0 is cross from positive to negative.

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

추가 답변 (2개)

Torsten
Torsten 2023년 1월 12일
편집: Torsten 2023년 1월 12일
out of our list of stuff to search for
?
v = [-0.1 2 4 -0.5 8];
[~,i] = min(abs(v(2:end)))
i = 3
v(i+1)
ans = -0.5000

댓글 수: 3

"out of our list of stuff to search for" <= He's searching FOR the index, so I think he really meant "out of our list of stuff to search", which is basically what @Torsten did. (No problem - non native English speakers probably don't know subtleties like that) The index would be
index = i+1;
Ali Almakhmari
Ali Almakhmari 2023년 1월 12일
편집: Ali Almakhmari 2023년 1월 12일
hmm I dont think this works. For example, I attached this variable here. The answer to my question should be 175 or the 174 index. But with this code you have I do not get that.
Actually I found the solution: I = find(diff(dis_y>=0),1);

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

Bora Eryilmaz
Bora Eryilmaz 2023년 1월 12일
편집: Bora Eryilmaz 2023년 1월 12일
load('var.mat')
[~,I] = sort(abs(dis_y), 'ascend');
% Closest value to 0:
dis_y(I(1))
ans = 2.3761e-05
% Second closest value to 0:
dis_y(I(2))
ans = -0.0014

댓글 수: 2

This is still not giving me 175 or 174.
I = find(diff(dis_y>=0),1);

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

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2023년 1월 12일

댓글:

2023년 1월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by