118305 发表于 2013-4-26 13:34:54

Matlab数据导入问题

请问各位,matlab中数据导入的时候如果txt文件中(内容如下)除了数字还有一些不想要的行(如下前六行),怎么去除前六行?(需要上百个类似文件的导入,能够批量修改么?)
ncols         250
nrows         500
xllcorner   130.0
yllcorner   0.0
cellsize      0.1
NODATA_value-9999
0.000.000.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.100.000.000.000.000.100.000.000.000.000.000.000.00

sofoot 发表于 2013-4-26 18:27:51

Matlab不会,如果是用Python,很容易处理。
不过,如果确定是前6行不要,不管用什么语言应该都不难吧,读进来,再去掉不要的就行了吧。

118305 发表于 2013-4-26 20:28:38

Matlab不会,如果是用Python,很容易处理。
不过,如果确定是前6行不要,不管用什么语言应该都不难吧,读进 ...
sofoot 发表于 2013-4-26 18:27 http://www.shumo.com/forum/images/common/back.gif
主要是文件太多,想要用个循环的,不太会写……

118305 发表于 2013-4-26 20:32:21

Matlab不会,如果是用Python,很容易处理。
不过,如果确定是前6行不要,不管用什么语言应该都不难吧,读进 ...
sofoot 发表于 2013-4-26 18:27 http://www.shumo.com/forum/images/common/back.gif

下面这个语句怎么改一下,能使3~127的MK数组都保存下来?

118305 发表于 2013-4-26 20:35:21

for i=3:129
fidin=fopen(file(i).name);                               % 打开test2.txt文件            
fidout=fopen(['m' 'file(i).name'],'w');                     % 创建MKMATLAB.txt文件
while ~feof(fidin)                                    % 判断是否为文件末尾               
    tline=fgetl(fidin);                                 % 从文件读行   
    if double(tline(3))>=48&&double(tline(3))<=57       % 判断首字符是否是数值
       fprintf(fidout,'%s\n\n',tline);                  % 如果是数字行,把此行数据写入文件MKMATLAB.txt
       continue                                       % 如果是非数字继续下一次循环
    end
end

sofoot 发表于 2013-4-27 18:07:56

这段代码应该可以吧,不能用吗?

118305 发表于 2013-4-27 18:39:40

回复 6# sofoot
嗯嗯,现在能用了,刚才是想把里面一些东西去掉~
页: [1]
查看完整版本: Matlab数据导入问题