matlab中的平均值clear %清除变量dx=0.01*2*pi; %间隔x=0:dx:2*pi; %自变量向量y=sin(x); %原函数f1=diff(y)/dx; %通过差分求导数f1=[f1(1),(f1(1:end-1)+f1(2:end))/2,f1(end)];%求平均值
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 13:35:11
matlab中的平均值clear %清除变量dx=0.01*2*pi; %间隔x=0:dx:2*pi; %自变量向量y=sin(x); %原函数f1=diff(y)/dx; %通过差分求导数f1=[f1(1),(f1(1:end-1)+f1(2:end))/2,f1(end)];%求平均值
matlab中的平均值
clear %清除变量
dx=0.01*2*pi; %间隔
x=0:dx:2*pi; %自变量向量
y=sin(x); %原函数
f1=diff(y)/dx; %通过差分求导数
f1=[f1(1),(f1(1:end-1)+f1(2:end))/2,f1(end)];%求平均值
matlab中的平均值clear %清除变量dx=0.01*2*pi; %间隔x=0:dx:2*pi; %自变量向量y=sin(x); %原函数f1=diff(y)/dx; %通过差分求导数f1=[f1(1),(f1(1:end-1)+f1(2:end))/2,f1(end)];%求平均值
f1=[ f1(1) | f1(2) f1(3) f1(4) . f1(end-1) | f1(end) ]
| f1(1) f1(2) f1(3) . f1(end) |
------------------------------------------------------------
2
f1除了第一个和最后一个数和原来一样,中间的数等于原来相邻的两个数的平均
f1的长度增加1
如果考虑到f1是dy/dx,原来y信号的差商
f1(1)=(y(2)-y(1))/dx
f1(2)=(y(3)-y(2))/dx
f1(3)=(y(4)-y(3))/dx
.
f1(n)=(y(n+1)-y(n))/dx
f1(end)=%注意这里f1的长度比y的长度减少1
经过程序最后两句,f1的长度和y相同
f1(1)==(y(2)-y(1))/dx
f1(end)=(y(end)-y(end-1))/dx %这里f1和y长度相同
f1(n)=(y(n+1)-y(n-1))/(2*dx) %n=2:end-1
就是说f1的第一值是原来y的后差商,最后一个值是原来y的前差商
中间的值是原来y的中间差商.
基本上就是求原来信号的差商,
经过最后一句,是使得差商的长度和原来信号一样
克服使用diff时,长度减少的缺点