请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14129|回复: 6

[程序设计] MATLAB批量处理台站资料

[复制链接]

新浪微博达人勋

发表于 2020-5-14 20:53:54 | 显示全部楼层 |阅读模式
2金钱
  1. for k = 1 : Length_Names
  2.     % 连接路径和文件名得到完整的文件路径
  3. K_Trace = strcat(Path, FileNames(k));
  4.     % 读取数据(因为这里是.txt格式数据,所以直接用load()函数)
  5.     eval(['Data',num2str(k),'=','load(K_Trace{1,1})',';']);
  6.     % 注意1:eval()函数是括号内的内容按照命令行执行,
  7.     %       即eval(['a','=''2','+','3',';'])实质为a = 2 + 3;
  8.     % 注意2:由于K_Trace是元胞数组格式,需要加{1,1}才能得到字符串
  9. end
复制代码
如上,我查到的代码是这样的 读取文件夹中372个台站资料,矩阵名称分别是Data1,...,Data372;
然后我想用循环提取出每个矩阵中我想要的那部分资料,然后存成新的矩阵Pre1,...,Pre372;
!!!重点 :我要在等号左端表示第i个矩阵 Pre(i)应该怎么写。(ps:每个矩阵独立最终效果是 A(j,:)=h(i,:),,,其中矩阵A是第i个 pre)

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-5-17 21:05:33 | 显示全部楼层
是在问eval怎么写吗? 把里面写成字符串的形式就可以了。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-5-17 21:09:55 | 显示全部楼层
eval只要里边写成字符串就可以了
eval(['Pre', num2str(i), '(i)' ,  '=',  ... , ';'])
                  Pre1(i)                    后边不知道写什么,记得最后打个冒号就好了

觉得自己打的有问题,就执行一下中括号里边的看看对不对,然后再改改
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-17 21:23:19 | 显示全部楼层
呆妹小霸王 发表于 2020-5-17 21:09
eval只要里边写成字符串就可以了
eval(['Pre', num2str(i), '(i)' ,  '=',  ... , ';'])
                ...

谢谢您 我试试 我搜到的方法好像就是eval
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-5-17 22:10:26 | 显示全部楼层
我提供一个大致思路,pre=zeros(m,n),先生成pre的存储矩阵。然后在用pre(:,i)这个函数存储。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-18 10:21:43 | 显示全部楼层
lancerv8 发表于 2020-5-17 22:10
我提供一个大致思路,pre=zeros(m,n),先生成pre的存储矩阵。然后在用pre(:,i)这个函数存储。

好的 谢谢了!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-8-19 09:16:31 | 显示全部楼层
我是利用研究区的站点编号从全国站点中提取我想要的数据,主要思路就是两个for循环,具体思路见文件,希望对你有用。

station_select.m

761 Bytes, 下载次数: 13, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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