作业帮 > 综合 > 作业

matlab中有一组一维数据,分别为[1 2 3 -1 -1 -1 -1 5 6 7 -1 8 -1 -1 -1 9.]

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/16 16:44:08
matlab中有一组一维数据,分别为[1 2 3 -1 -1 -1 -1 5 6 7 -1 8 -1 -1 -1 9.]其中数值-1的为待处理值
现在我想用求取平均值法处理数据,例如7 和 8之间的-1我用(7+8)/2=7.5替换,8和9之间的3个-1,我首先对中间那个赋8.5,然后分别对左右两个-1值赋为8.25和8.75.请问我该怎么编程,尽量用最简单的语言,
matlab中有一组一维数据,分别为[1 2 3 -1 -1 -1 -1 5 6 7 -1 8 -1 -1 -1 9.]
运用线性插值的办法解决此问题.程序如下:
clc;clear;
data=[1 2 3 -1 -1 -1 -1 5 6 7 -1 8 -1 -1 -1 9]; %可以根据自己的情况修改此处的数据
x=find(data~=-1);
y=data(x);
xi=find(data==-1);
yi=interp1(x,y,xi);
data(xi)=yi;