爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6495|回复: 12

[讨论] matlab批量读取文件--请求帮助

[复制链接]

新浪微博达人勋

发表于 2014-11-19 19:09:58 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
为什么批量读取,循环的时候总是读取最后一个文件呢??
clc;  %清屏
clear; %清空
datadir='C:\Users\gcl\Desktop\ocldb1414644603.5475.OSD\'; %指定批量数据所在的文件夹,文件目录Users\gcl\Desktop\ocldb1414644603.5475.OSD。
filelist=dir([datadir,'*.nc']); %指定批量数据的类型
a=filelist(1).name; %查看你要读取的文件的编号。filelist(1).name在window下为第一个标号数据
b=filelist(2).name; %查看你要读取的文件的编号。filelist(2).name在window下为第二个标号数据
k=length(filelist);
for s=1:k
   filename=[datadir,filelist(s).name];
   ncid=netcdf.open(filename,'NC_NOWRITE');
   pHData= ncread(filename,'pH'); %读入变量pH
   netcdf.close(ncid)
end;
         文件是2400个,我最后得到的变量pHData里面就一列数据,应该就是最后一个(第2400个)文件的变量pH被提取出来了。
我想最后应该得到的是一个关于 pHData的矩阵(应该有2400列的pH)。
        问题困扰了我好多天了,请各位能人帮忙,万分感谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-19 22:57:24 | 显示全部楼层
pHData= ncread(filename,'pH'); %读入变量pH
自己想想吧,s=1,你的pHData=a1(假设),然后s=2,pHData=a2(下一个了),说明了你的pHData不断被后面的赋值进去,一直都在变化的。所以你要赋值到不同的pHData中,例如pHData(s),但是,这个式子只能适用于一维的。。。多找找贴吧,很多有用了。。。我也就那水平了。。。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 成长值: 32430
发表于 2014-11-19 19:28:26 | 显示全部楼层
当然是一行,
  pHData= ncread(filename,'pH'); %读入变量pH
这一行有错误
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-19 20:10:52 | 显示全部楼层
我是MATLAB小白白~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-19 21:15:29 | 显示全部楼层
循环后面的把前面的给覆盖了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-19 21:33:46 | 显示全部楼层
二爷名声在外 发表于 2014-11-19 19:28
当然是一行,
  pHData= ncread(filename,'pH'); %读入变量pH
这一行有错误

请您帮忙改一下,谢谢了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-19 21:34:33 | 显示全部楼层
liu_senfeng 发表于 2014-11-19 21:15
循环后面的把前面的给覆盖了

我应该如何修改呢,请您帮忙。谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-11-20 09:01:47 | 显示全部楼层
guchenglin 发表于 2014-11-19 21:33
请您帮忙改一下,谢谢了。

你的具体数据结构我不是很清楚,试试这个
pHData= [pHData;ncread(filename,'pH')];
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-20 13:32:48 | 显示全部楼层
wuzzh_gd 发表于 2014-11-19 22:57
pHData= ncread(filename,'pH'); %读入变量pH
自己想想吧,s=1,你的pHData=a1(假设),然后s=2,pHData= ...


pHData后面加上{s}。运行pHData{s}= ncread(filename,'pH')问题解决了。
谢谢各位的关心,帮助。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-15 17:09:59 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表