How do I determine which row my value change significantly

1 回表示 (過去 30 日間)
new2matlab
new2matlab 2019 年 11 月 26 日
コメント済み: new2matlab 2019 年 11 月 26 日
I'm looking to automate the process of finding where my column data changes from 375 (about the first 7 rows right now), as it starts decreasing constantly after that. Depending on the data loaded in, the change from a constant 375 can start anywhere from row 3 to row 8, so I'd like to detect where it begins. Thanks!

採用された回答

Turlough Hughes
Turlough Hughes 2019 年 11 月 26 日
編集済み: Turlough Hughes 2019 年 11 月 26 日
You could find where data is not equal to 375 and then take the first index where this condition is true:
rowstart=min(find(data~=375))
Then your new data would be:
data2=data(rowstart:end);
  1 件のコメント
new2matlab
new2matlab 2019 年 11 月 26 日
This is exactly what I needed. Thank you!

サインインしてコメントする。

その他の回答 (1 件)

TADA
TADA 2019 年 11 月 26 日
Im assuming its roughly 375 and not exactly that value, otherwise go with Turlough Hughes' solution which is simpler.
The easiest method is to compare the values with tolerance to changes. You can define a threshold value that you would concider as significant reduction
% for the sake of this example I'm using 5% of the initial value (should be ~5% of 375)
threshold = 0.05*data(1);
sigDecMask = data < (data(1) - threshold);
startDecIdx = find(sigDecMask, 1, 'first');

カテゴリ

Help Center および File ExchangeGraphics Object Programming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by