wulai 发表于 2008-9-22 17:27

读取fre格式的matlab函数。

导出的FRE格式 的声压文件,我每次都要把文件里的数据逐个调开,因为如果直接导入到MATLAB 里,会有很NAN出现,也就是说不识别,必须把带有负号的数据与前面的隔开,这样逐个调,很费力 ,请问各位高手,有方便的方法吗?多谢

w89986581 发表于 2008-9-22 18:07

呵呵,在matlab逐行读取,判断-号位置,在其前面添加空格,再存储为另一个文件。

wulai 发表于 2008-9-23 12:41

我是这样做 的,,但是频率范围20-4000,,步长是20的话。每个场点要很多个-号,然后空格,累的眼睛都流出眼泪来了,真的要这么麻烦吗。?谢谢您的指导。

w89986581 发表于 2008-9-24 20:09

哈哈,我的眼泪都笑出来了。
index = strfind(a,'-');
a1 = a;
for ii = 1:length(index),
a1(index(ii),index(ii)+1) = ' -';
a1 = ;
a1(index(ii)+2:end) = a(index(ii)+1:end);
end

wulai 发表于 2008-9-25 10:47

对MATLAB不是很熟练呀。没看懂呀。我把其中一点的声压文件发上来,你看看应该怎么做呢?按照你的方法,怎么总是报错呢?

wulai 发表于 2008-9-25 14:58

第二附件是能够正确导入MATLAB的声压文件?这个是如何从SYS里面导出来的呢?怎么样调整的呢?
这个肯定不是有手工调出来的吧?那又要流眼泪了

w89986581 发表于 2008-9-25 16:31

回复 5楼 wulai 的帖子

多利用数据记录特征
clc
filename = ['m1.txt'];   %%% Sysnoise输出的ATV文件
filename1 = ['m11.txt'];
fid= fopen(filename,'r');
if fid == -1,    disp('Invalid datafile');    return;end
fid1= fopen(filename1,'w');
while 1,
    dataline1 = fgetl(fid);
    if ~ischar(dataline1),    break;   end;
    dataline11 = ;
    fprintf(fid1,'%s\n',dataline11);
end
fclose(fid);
fclose(fid1);

ChaChing 发表于 2008-9-25 22:46

For reference :

fid = fopen('m1.txt','rt'); frewind(fid);
zzz = fscanf(fid,'%g',); zzz=zzz'; fclose(fid);

wulai 发表于 2008-9-26 09:17

谢谢版主和CHACHING的帮助,我会细细研究下二位的方法,再次感谢热心的两位
页: [1]
查看完整版本: 读取fre格式的matlab函数。