如何在MATLAB中读入DZT格式数据
请问如何在MATLAB中读入DZT格式,即探地雷达数据,我想对其进行小波分析,我用了如下程序,可是读出的数据有问题,关键是所得的fid好像不对,不知道怎么回事,是不是程序有错,烦请各位高手指教!fid=fopen('XHA_____022.DZT','rb');
status=fseek(fid,1024,'bof');
m=1024;
n=20;
a22=fread(fid,,'single');
m=m-51;
a1=zeros(m,n);
for i=1:n
for ii=1:m
a(ii,i)=a22(ii,i);
end
end
fclose(fid);
figure(1);
for l=1:n
subplot(1,n,l);
plot(a1(:,l),1:m);
hold on;
axis off;
axis('ij');
end 用了uigetfile函数也好像不对!:@( 原帖由 vivid920 于 2008-5-6 13:48 发表 http://www.chinavib.com/forum/images/common/back.gif
用了uigetfile函数也好像不对!:@(
可以用fscanf命令试试看 原帖由 ch_j1985 于 2008-5-6 14:03 发表 http://www.chinavib.com/forum/images/common/back.gif
可以用fscanf命令试试看
用了,结果还是一样。
我怀疑是不是fid=fopen('XHA_____022.DZT','rb');这句不对啊?是不是不该这么用呢? =uigetfile('*.dzt','选择原始探地雷达数据文件');
fid=fopen(,'rb');
m=1024;
n=20;
a22=fscanf(fid,'%s',);
m=m-51;
a1=zeros(m,n);
for i=1:n
for ii=1:m
a(ii,i)=a22(ii,i);
end
end
fclose(fid);
figure(1);
for l=1:n
subplot(1,n,l);
plot(a1(:,l),1:m);
hold on;
axis off;
axis('ij');
end
用这个命令,运行后出现
??? Error using ==> fscanf
Invalid fid. fid=fopen('XHA_____022.DZT','rb');
'rb'改为'wt'试试 原帖由 vivid920 于 2008-5-6 14:53 发表 http://www.chinavib.com/forum/images/common/back.gif
=uigetfile('*.dzt','选择原始探地雷达数据文件');
fid=fopen(,'rb');
m=1024;
n=20;
a22=fscanf(fid,'%s',);
m=m-51;
a1=zeros(m,n);
for i=1:n
for ...
fid=fopen(,'rb')这样不行,用fid=fopen('d:\XHA_____022.DZT','rb')这样的试一试。
[ 本帖最后由 jinnian 于 2008-5-6 15:17 编辑 ] 感觉前面1楼的fopen没错,应该是a22=fread(fid,,'single')有问题,可能数据类型不是single的。 原帖由 vivid920 于 2008-5-6 14:53 发表 http://www.chinavib.com/forum/images/common/back.gif
=uigetfile('*.dzt','选择原始探地雷达数据文件');
fid=fopen(,'rb');
m=1024;
n=20;
a22=fscanf(fid,'%s',);
m=m-51;
a1=zeros(m,n);
for i=1:n
for...
能不能把探地雷达数据文件传上来? DZT格式的文件传不上来,所以转换成了TXT文件!
得到这样的图形,并不是我所想要的
我希望得到的是这样的波形!有谁知道怎么在MATLAB里读出吗? 原帖由 vivid920 于 2008-5-6 18:54 发表 http://www.chinavib.com/forum/images/common/back.gif
DZT格式的文件传不上来,所以转换成了TXT文件!
DZT格式的文件里的数字维数是多少?
一共有31744个数字,31行,1024列,对吗? 一共有31744个数字,31行,1024列,对吗?
对的 原帖由 vivid920 于 2008-5-6 20:01 发表 http://www.chinavib.com/forum/images/common/back.gif
一共有31744个数字,31行,1024列,对吗?
对的
这几句代码什么意思?
m=1024;
n=20;
a22=fread(fid,,'single');
m=m-51;
a1=zeros(m,n);
for i=1:n
for ii=1:m
a1(ii,i)=a22(ii,i);
end
end