wangyongq246 发表于 2006-11-22 13:56

用matlab可以读.dat文件吗?在已知文件存放内容的情况下

用matlab可以读.dat文件吗?在已知文件存放内容和数据排放格式的情况下

shenyongjun 发表于 2006-11-22 14:17

用load即可

[ 本帖最后由 ChaChing 于 2010-7-9 15:09 编辑 ]

skysurfer 发表于 2006-11-22 15:34

为什么我在用load读取.txt文件时总是出错,提示:Number of columns on line 2 of ASCII file F:\ttt1.txt
must be the same as previous lines.
是因为文件的内容有问题??请高手指点一下

jimin 发表于 2006-11-22 15:47

估计文件中有文字吧,用importdata试试

sunning 发表于 2006-11-22 16:33

matlab用load读取txt或者dat的文件,文件中必须是纯粹的数据,不允许有其他的文字说明。txt或者dat中的数据文件最好是按矩阵形式排列,在读取之后可直接用于程序。

[ 本帖最后由 eight 于 2007-6-6 16:08 编辑 ]

wangyongq246 发表于 2006-11-22 16:38

已知文件中前80个字节是文字说明内容,后面的全是按照一定格式的数字,该如何处理呢?

rxian 发表于 2006-11-22 17:12

可以用fgetl,把文字行跳过去,然后用fid=fopen...,来处理

mulan 发表于 2006-11-22 17:14

用textread吧
help一下用法

w89986581 发表于 2006-11-22 21:49

原帖由 skysurfer 于 2006-11-22 15:34 发表
为什么我在用load读取.txt文件时总是出错,提示:Number of columns on line 2 of ASCII file F:\ttt1.txt
must be the same as previous lines.
是因为文件的内容有问题??请高手指点一下


load的时候,要求文件中每行包含的数值串数都是一样的。

w89986581 发表于 2006-11-22 21:50

function = adjustline(filename,p,m,n)
%p为头信息行数,m为数据行数,n为间隔信息行数(mesh:n=3;node:n=2), filename为读入数据文件名,调整格式以后的文件(filename)_modified.txt

p=7;m=1;
filename='D:\Sysnoise\radiation\result.txt';
n=14;

fid= fopen(filename,'r');
filename1 = ;
fid1= fopen(filename1,'w');

for ii=1:p,
    dataline1 = fgetl(fid);
    if ~ischar(dataline1),
      fclose(fid);
      fclose(fid1);
      return;
    end
end
while 1
    for ii=1:m,
      dataline1 = fgetl(fid);
      if ~ischar(dataline1),
            fclose(fid);
            fclose(fid1);
            return;
      end
      fprintf(fid1,'%s \n',dataline1);
    end
    for ii=1:n,
      dataline1 = fgetl(fid);
      if ~ischar(dataline1),
            fclose(fid);
            fclose(fid1);
            return;
      end
    end
end

[ 本帖最后由 w89986581 于 2006-11-22 21:52 编辑 ]

happy 发表于 2006-11-23 17:40

和txt文件读取是一样的
一个比较完善的程序

http://forum.vibunion.com/forum/thread-8937-1-1.html

建议大家问问的时候先搜索一下论坛
页: [1]
查看完整版本: 用matlab可以读.dat文件吗?在已知文件存放内容的情况下