s5356765 发表于 2011-5-8 20:57

fscanf数据读取的问题 在线等 谢谢

fni=input('频域积分-输入数据文件名:','s');
fid=fopen(fni,'r');
sf=fscanf(fid,'%f',1);%采样频率
fmin=fscanf(fid,'%f',1);%最小截止频率
fmax=fscanf(fid,'%f',1);%最大截止频率
c=fscanf(fid,'%f',1);%单位变换系数
it=fscanf(fid,'%f',1);%积分次数
sx=fscanf(fid,'%s',1);%横向坐标轴的标注
sy1=fscanf(fid,'%s',1);%纵向坐标轴输入单位的标注
sy2=fscanf(fid,'%s',1);%纵向坐标轴输出单位的标注
fno=fscanf(fid,'%s',1);%输出数据文件名
x=fscanf(fid,'%f',);%输入数据存成行向量
如题,我想导入的是1个列矩阵 他保存在了EXCEL内
运行的时候读不出来 会出现Invalid file identifier -1.打不开的情况 然后就出现sf=fscanf(fid,'%f',1);%采样频率   难道要用TXT吗可是用TXT我也不会放入采样频率的数据啊 应该放在什么地方啊
我是菜鸟 不知道想采样频率等上述数据应该在excel中保存的格式 请告诉我啊   可能说的也不明白 我会补充

meiyongyuandeze 发表于 2011-5-8 21:06

我一直都是用load语句读取txt文件。将你需要用的这些参数都存在txt文本中,放入到你的工作路径下,用load读入,并采用赋值语句就可以给个变量赋读入的值。

s5356765 发表于 2011-5-8 21:50

回复 2 # meiyongyuandeze 的帖子

虽然还是不懂   还是谢谢了 {:{36}:}
存在TXT中?
像这样一个程序
clear;
clc;
fni=input('数据文件名:','s');
fid=fopen(fni,'r');
fs=fscanf(fid,'%f',1);%采样频率
m=fscanf(fid,'%d',1);   %拟合多项式阶数
fno=fscanf(fid,'%s',1); %输出数据文件名
x=fscanf(fid,'%f',inf); %时程数据
status=fclose(fid);
n=length(x);
t=(0:1/fs:(n-1)/fs);
a=polyfit(t,x,m);   %计算多项式待定系数向量a
y=x-polyval(a,t);   %用x减去多项式系数a生成的趋势项
subplot(2,1,1);
plot(t,x);
title('original signal');
grid on;
subplot(2,1,2);
plot(t,y);
title('redifined signal');
grid on;
fno=input('输出数据的文件名:','s');
save(fno,'t','y');
我的TXT文件是这样的
60
2
ppOUT.txt
-940.55
-45.17
919.19
1718.14
2502.44
2827.76
2948.61
2928.47
2451.78
1781.01
......
为什么我打不开呢
就会出现??? Error using ==> fscanf
Invalid file identifier -1.

Error in ==> Untitled9 at 5
fs=fscanf(fid,'%f',1);%采样频率

ChaChing 发表于 2011-5-9 00:15

回复 3 # s5356765 的帖子

1.资料在EXCEL内!? help xlsread!
2.help fopen!! fid=fopen(fni,'r'); fid=-1表没这档! 检查路径及档名
页: [1]
查看完整版本: fscanf数据读取的问题 在线等 谢谢