У меня есть ниже сюжет, который caontained плохих данных, которые я расчесала:Matlab: щеточная плохие данные, а потом снова фрагменты
В середине, например, что это лучший способ восстановить смежные фрагменты, полностью удаляя пустое пространство?
У меня есть ниже сюжет, который caontained плохих данных, которые я расчесала:Matlab: щеточная плохие данные, а потом снова фрагменты
В середине, например, что это лучший способ восстановить смежные фрагменты, полностью удаляя пустое пространство?
Если вы изменили сюжет графически, это то, как вы получаете доступ к модифицированному данные:
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))
Я бы предпочел: 'ix = ~ (isnan (x_data (:)) | isnan (y_data (:))); plot (x_data (ix), y_data (ix)); ' –
Я рассмотрел ваше предложение в обновлении, спасибо. – erfan
Как вы удалили эти детали? Вы заменили их на «NaN»? И как вы хотите все снова подключить? Вы хотите, чтобы все осталось? – erfan
@erfan Я просто наманил их на сюжет и нажал delete, и они были заменены NAN. Мне просто нужно перетащить правый фрагмент и подключить его к левой. Но я не уверен, какой метод интерполяции я должен использовать в этом случае. –
Предполагая, что ваша переменная 'x', вы можете просто использовать' x (a: b) = [] 'где a и b - пределы, которые вы хотите разрезать. Или, если они уже являются NaNs, тогда 'x (isnan (x)) = []'? – GameOfThrows