найти и заменить значение - PullRequest
1 голос
/ 17 января 2012

У меня есть структурированный массив (1x1) под названием «Данные», который имеет 3 поля. Каждое поле содержит вектор данных.

Следующий код используется для замены значений, которые различаются более чем на 0.2, на значение рядом с ним на NaN. Однако возможно ли изменить этот код так, чтобы значение, которое изменяется на 0.2, не изменялось на NaN, а изменялось на значение, с которым оно сравнивалось?

for i=1:3;
    I{i} = find(diff(Data.(Names{i}))>0.2); 
    Data.(Names{i})(I{i}+1)=NaN;
end

спасибо

1 Ответ

1 голос
/ 17 января 2012

Если я вас правильно понимаю, вы сравниваете элемент с предыдущим элементом. Если разница больше 0,2, заменить этот элемент на предыдущий?

Тогда ты почти у цели. Присвойте значение предыдущим элементам следующим образом:

Data.(Names{i})(I{i}+1)=Data.(Names{i})(I{i})
...