2016-10-04 2 views
0

У меня есть ниже сюжет, который caontained плохих данных, которые я расчесала:Matlab: щеточная плохие данные, а потом снова фрагменты

plot

В середине, например, что это лучший способ восстановить смежные фрагменты, полностью удаляя пустое пространство?

+2

Как вы удалили эти детали? Вы заменили их на «NaN»? И как вы хотите все снова подключить? Вы хотите, чтобы все осталось? – erfan

+0

@erfan Я просто наманил их на сюжет и нажал delete, и они были заменены NAN. Мне просто нужно перетащить правый фрагмент и подключить его к левой. Но я не уверен, какой метод интерполяции я должен использовать в этом случае. –

+1

Предполагая, что ваша переменная 'x', вы можете просто использовать' x (a: b) = [] 'где a и b - пределы, которые вы хотите разрезать. Или, если они уже являются NaNs, тогда 'x (isnan (x)) = []'? – GameOfThrows

ответ

2

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

Line = get(gca, 'Children'); 
x_data = Line.XData; 
y_data = Line.YData; 

Затем, если вы хотите сохранить фрагменты, где они и просто соединить их, вы можете игнорировать NaN точек данных и сюжет остальное:

id = ~(isnan(x_data(:)) | isnan(y_data(:))); 
figure; plot(x_data(id), y_data(id)) 

Если вы хотите, чтобы подтолкнуть все фрагменты слева и соединить их, после определения id, как указано выше, вы можете сделать это следующим образом:

firstid = find(id, 1); 
figure; plot(x_data(firstid:(firstid + sum(id) - 1)), y_data(id)) 
+1

Я бы предпочел: 'ix = ~ (isnan (x_data (:)) | isnan (y_data (:))); plot (x_data (ix), y_data (ix)); ' –

+0

Я рассмотрел ваше предложение в обновлении, спасибо. – erfan

Смежные вопросы