Извлечение данных из графика с помощью «Кисть / Выбор данных» в Matlab - PullRequest
0 голосов
/ 21 сентября 2019

На моем графике у меня есть ось X в формате даты и времени, а y - соответствующие наблюдения.Есть несколько групп аномалий, которые я могу визуально распознать.Я попытался выбрать аномалии с помощью инструмента «Кисть / Выбрать данные» на рисунке, но когда я попытался скопировать данные в буфер обмена и вставить их в блокнот, данные не в формате datetime, и я не могу их интерпретировать.

Я хотел бы выбрать данные из графика и удалить индексы из набора данных.Я предоставляю образец данных, которые я скопировал из кисти.

56.5868518518519    463.32834344035
56.6596759259259    463.337
56.6603240740741    463.335
56.6608217592593    463.326 

Спасибо enter image description here

1 Ответ

0 голосов
/ 23 сентября 2019

Вы смотрели на rmoutliers (A ) ?Если все, что вам нужно, это удалить выбросы, эта функция сделает именно это.

Если вы по какой-либо причине не можете использовать функцию, вы можете использовать это:

% Compute the median absolute difference
meanValue = mean(vector)
% Compute the absolute differences.  It will be a vector.
absoluteDeviation = abs(vector - meanValue)
% Compute the median of the absolute differences
mad = median(absoluteDeviation)
% Find outliers.  They're outliers if the absolute difference
% is more than some factor times the mad value.
sensitivityFactor = 6 % Whatever you want.
thresholdValue = sensitivityFactor * mad;
outlierIndexes = abs(absoluteDeviation) > thresholdValue
% Extract outlier values:
outliers = vector(outlierIndexes)
% Extract non-outlier values:
nonOutliers = vector(~outlierIndexes)%Compute the median absolute difference

Кредит идет на этот парень , но это очень простой подход и должен сделатьименно то, что вам нужно

...