找到并替换价值

时间:2012-01-17 10:41:53

标签: matlab find nan

我有一个名为'Data'的结构化数组(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 个答案:

答案 0 :(得分:1)

如果我理解正确的话,你要将元素与前一个元素进行比较。如果差值大于0.2,那么用前一个元素替换它?

然后你快到了。分配前面元素的值,如下所示:

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