Saving Data for for loop into a vector

I have a vector of 1801 THRUST data points. I am determining when the THRUST data is less than 0.43 and trying to index at what points this is the case. I am then trying to find the corresponding times. I have another vector, TIME, of the same length. Below is my code, but I cannot get it to print out the indexed times as a vector. Any help is appreciated
for i = 1:1801
if find(THRUST > 0.43)
Y(x) = TIME(i)
end
else Y = NaN
end
end

답변 (1개)

Star Strider
Star Strider 2021년 4월 8일

0 개 추천

The loop is likely not necessary.
Try this:
idx = find(THRUST>=0.43, 1, 'first');
Time = TIME(idx);
to get the closest index, or:
idx = find(THRUST>=0.43, 1, 'first');
Time = interp1(THRUST(idx-2:idx), TIME(idx-2:idx), 0.43);
to interpolate to a more precise value, if ‘THRUST’ is never exactly 0.43.

카테고리

도움말 센터File Exchange에서 Interpolation에 대해 자세히 알아보기

질문:

2021년 4월 8일

답변:

2021년 4월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by