作业帮 > 综合 > 作业

MATLAB画多个曲线的平均值曲线

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 04:11:37
MATLAB画多个曲线的平均值曲线
多个二维曲线:x代表时间,y代表值
比如曲线1:x_1=[1,2,3,4,5],y_1=[1,2,3,4,5],曲线2:x_2=[2,3,4,5,6,7,8],y_2=[2,3,4,5,6,7,8],怎样画这两个曲线的平均值曲线,当然,时间x不能平均,只对同一x点下的y值进行平均
x1 = [1 2 3 4 5];
x2 = [2 4 5 6];
y1 = [4 6 8 9 2];
y2 = [3 6 2 5];
x =unique([x1 x2]); %时间点合并,去掉重复的值,并排序
y=[];
for i=x
index1 = x1 == i;
index2 = x2 == i;
if sum(index1)>0 && sum(index2)>0 %若某时间点上有两个值,取平均
y(i)=mean([y1(index1) y2(index2)]);
elseif sum(index1)>0 %单个值,则不变
y(i)=y1(index1);
elseif sum(index2)>0
y(i)=y2(index2);
end
end
再问: 呃呵,这个思路可以(当然,单个值的时候也要在另外一个点采样)。请问,有没有直接可以合并这两个曲线的matlab函数?
再答: 如果只保留X相同的部分的话,可以这样: [a,a1,a2]=intersect(x1,x2); x=a; y=mean([y1(a1); y2(a2)]); 专门干这事儿的函数我就不知道啦