clear
clc
close all hidden
fni=input('五点三次平滑处理-输入数据文件名:','s');
fid=fopen('fni','r');
sf=fscanf(fid,'%f',1);
it=fscanf(fid,'%d',1);
m=fscanf(fid,'%d',1);
fno=fscanf(fid,'%s',1);
x=fcanf(fid,'%f',[it,inf]);
status=fclose(fid);
n=length(x,(1,:));
for l=1:it
a=x(l,:);
for k=1:m
b(1)=(69*a(1)+4*(a(2)+a(4))-6*a(3)-a(5))/70;
b(2)=(2*(a(1)+a(5))+27*a(2)+12*a(3)-8*a(4))/35;
for j=3:n-2
b(j)=(-3*(a(j-2)+a(j+2))+12*(a(j-1)+a(j+1))+17*a(j))/35;
end
b(n-1)=(2*(a(n)+a(n-4))+27*a(n-1)+12a(n-2)-8*a(n-3))/35;
b(n)=(69*a(n)+4*(a(n-1)+a(n-3))-6*a(n-2)-a(n-4))/70;
a=b;
end
y(l,:)=a;
end
if it==1
nn=1:2000;
t=0:1/sf:(n-1)/sf;
plot(t(nn),x(nn),':',t(nn),y(nn));
xlabel('时间(s)');
ylabel('幅值');
legend('平滑前','平滑后');
grid on;
else
nn==1:256;
f=0:sf/n:(n-1)*sf/n;
subslot(2,1,1);
plot(f(nn),x(1,nn),':',f(nn),y(1,nn));
xlabel('频率((HZ)');
ylabel('实部');
legend('平滑前','平滑后');
grid on;
subslot(2,1,2);
plot(f(nn),x(2,nn),':',f(nn),y(2,nn));
xlabel('频率((HZ)');
ylabel('虚部');
legend('平滑前','平滑后');
grid on;
end
fid=fopen(fno,'w');
for k=1:n
if it=1
fprintf(fid,'%f%f\n',t(k),y(1,k),y(2,k));
end
end
status=fclose(fid);
这是五点三次平滑的程序,然后结果是五点三次平滑处理-输入数据文件名:我的一个数据文件data.TXT在C:\MATLAB7\work\data.TXT
,命令中输入C:\MATLAB7\work\data.TXT
怎么结果是??? fid=fopen('fni','r');
|
Error: Missing variable or function.
呀,请高人指点,我是刚刚学习MAtlab,谢谢了 |