如何在数组中选择值直到达到阈值



我将解释我的问题。我有一个1x1701采样阵列";再采样WF";,一旦我找到了这个数组的最大值("peak_WF"(,我就设置了一个阈值0.7*peakWF,我想选择数组中最接近这个阈值的值。示例:power_vs_time_threshold

正如你所看到的,我能够选择第一个类似于…的值。。。但我想要最后一个(大约t=2秒(。我试着用";翻转";功能:

WF_threshold_input = 0.7*peak_WF;
flip_resampled_WF = flip(resampled_WF);
diff_peak_threshold = peak_WF - WF_threshold_input; %power loss at 70% power reduction
diff_peak_WF = peak_WF - flip_resampled_WF;
min_diff_threshold = min(abs(diff_peak_WF-diff_peak_threshold));

这样,MATLAB计算整个数组的最小差,我想停留在第一个值,而不考虑其他值。我尝试选择值为<=的值WF_threshold_input,但它再次选择整个数据集。

如何正确选择值?

谢谢!!

对矩阵使用运算将调用对矩阵中每个元素的运算。您想要做的是使用一个循环,这样您就可以准确地控制要检查的元素,然后脱离循环。

index = length(resampled_WF);
your_threshold = ...
while resampled_WF(index) < your_threshold
   index = index - 1;
end

while循环将继续迭代,直到它达到超出您定义的阈值的值。

执行后,index的值将是数组中最远值的索引,该值在您的阈值之外。您可以在执行代码后通过查看resampled_wf(index)来访问阈值之外的最远值。

我们不必担心index的值离开数组的边界,即<1,因为条件resampled_wf < your_threshold保证由您最初生成阈值的最大值满足。

相关内容

  • 没有找到相关文章

最新更新