APP下载

基于Matlab数据库工具箱的实验数据自动抽取及应用

2015-10-22宫薇薇

大学物理实验 2015年2期
关键词:工具箱赋值数据源

宫薇薇

(中国铁道科学研究院,北京 100081)

基于Matlab数据库工具箱的实验数据自动抽取及应用

宫薇薇

(中国铁道科学研究院,北京 100081)

矩阵计算和多领域的算法库是Malab科学计算软件的核心,它所提供的大量函数库为科研工作者进行专业领域实验提供了巨大的方便。Matlab数据库工具箱虽然开启了自动化调用数据的功能,但是并不是每位科学实验的研究者均具备数据库编程和书写SQL语句的技能,而大规模参数赋值却是科学实验的基础。因此通过介绍工具箱中QueryBuilder的使用,建立ODBC/JDBC兼容数据源,对大规模实验数据进行自动抽取数据、变量赋值及图形化表示、函数测试及调用。实现不书写任何计算机语句,完成大规模数据的调用赋值以及函数调用的功能,旨在帮助实验者快速完成物理数据的计算工作。

实验数据;Matlab;数据库

矩阵是Matlab的数据存储形式,矩阵存储结构方便对阵内数据做规范化统一处理,矩阵数据的赋值是科学计算的首要的基础性问题。就目前的技术而言,大量数据的存储不是问题,关键是如何快速地将整理好的上万条数据以数据库形式自动赋值给需要处理函数的输入变量。应用写计算机语言和SQL语句来处理数据的提取毋庸置疑是一种良好的解决方式[1-7]。但是Matlab针对的研究者众多,使用不同工具箱的学者各异,不是每个学者都能具备SQL编程的能力。如果矩阵数据的规模不大,手工录入就没有问题,但是往往需要处理的数据规模巨大。针对此问题,本文通过数据库工具箱实现Matlab与任何ODBC/JDBC兼容数据库的数据交换,使用QueryBuilder工具可以自动实现SQL查询语句的生成,完成对变量的赋值和存储。进而在不需要书写任何代码的前提下,实现对数据读取、分析和存储的快速实现。实现每个学者能够应用Matlab快速实现物理数据的导入结果的测算。

实验步骤主要分为搜集数据、建立数据源、自动抽取数据、变量赋值及图形化表示、函数测试及调用五个步骤,以铁路运量景气指数计算为例,对每个实验步骤进行详细阐述。

1 搜集数据

在完成求解问题参数设计和模型建立的工作后,根据输入参数的数据搜集是进行算例测算的第一步。数据的搜集的渠道、可得性和质量是保证模型测算结果准确性的基石。示例实验所要测算的是影响铁路货运量相关宏观经济及行业因素,数据的时间周期是以月度为单位。将可搜集的相关月度数据进行整理,分为国内生产总值、工业生产、工业企业利润、投资、房地产、零售与消费、劳动力市场、通货膨胀、货币与信贷、汇率、利率、财政收支、对外贸易、金融市场和大宗商品15张表,放入Excel表中,也可以导入到Access数据形成数据库,完成数据准备。

图1 国内生产总值数据表结构

2 建立数据源

在使用数据库中数据之前,必须建立需要处理的数据源。Matlab调用数据库的原理如图2所示:操作系统通过数据库工具箱,Windows通过Bridge模式和ODBC驱动,或者Unix/Windwos系统直接通过JDBC驱动,实现与数据库之间的通讯。

图2 数据库工具箱驱动原理

主要使用的是Matlab数据库工具箱中的QueryBuilder工具,在命令窗口中输入如下命令:

调用Visual Query Builder,如图3所示:

图3 Visual Query Builder窗口界面

点击Query菜单中的Define ODBC Data Source对数据源进行定义。在ODBC数据管理器中添加驱动程序,以Excel数据为例选择相应的安装数据源驱动程序,也就是使用的数据的存储格式,一般习惯性地将数据存放在excel里面。

图4 ODBC数据源建立窗口界面

为了兼容office版本,选择Microsoft Excel Driver(∗.xls,∗.xlsx,∗.xlsb),点击完成。对数据进行命名。最后,点击确定,即完成了数据源的定义。

3 自动抽取数据

在Visual Query Builder界面中的Data source中可以看到已经建立命名的数据源,将其选中,Tables栏可以看到所有的表,选中其中一个,Fields栏中可以看到所有的字段。

图5 数据提取界面

如图5所示,选择Newuse数据源,Sheet1中的字段。在Fields栏,按住Ctrl用鼠标左键逐一选择,或者按住shift键用鼠标选择始末两个字段,比如选择“固定资产投资:制造业、标普500波VIX指数、固定资产投资(名义增速)、政府财政盈余、生产者价格指数(季度环比折年)、人民币存款”六个指标,按住Shift键,用鼠标左键选择“固定资产投资:制造业”,然后再选择“人民币存款”。在下面的SQL Statement中会自动生成SQL语句:

SELECT ALL固定资产投资:制造业,标普500波VIX指数,固定资产投资(名义增速),政府财政盈余,生产者价格指数(季度环比折年),人民币存款FROM"Sheet1$"。

如果需要生成更加高级的SQL语句可以通过Advanced query options中的,Where、Group by,Having和Order by进行自动生成。

4 变量赋值及图形化表示

在图5界面中,Matlab workspace variable中填写需要赋值的变量比如A,点击Execute,将SQL执行的数据结果赋值给变量。然后,在Workspace variable栏中即可看到已经赋值变量A的基本内容,114行6列,46512字节存储。

同样步骤,将变量B赋值:

SELECT ALL中国出口,出口金额:化工产品,工业增加值真实增速(3月移动平均),石油现货价格,工业企业利润:轻工业FROM"Sheet1 $"。

Matlab workspace variable中填写需要赋值的变量比如B,点击Execute。在Workspace variable中显示A、B两变量的信息。在Matlab Command Windows中查看A、B的值,以A为例:

图5 变量A赋值结果

在Display菜单中,有关于数据的图形化和报告生成功能,选择Chart,打开Visual Query Builder Charting菜单,选择坐标变量,点击Display按钮,自动生成相应的图形化表示。

图6 Charting界面

5 函数测试及调用

在Malab中的File菜单中新建Function文件,输入相应的参数和函数名称,试验结果通过CI1变量进行传递。

如图5所示,excel数据提取出来以后是有[]括起来的Cell格式,如果进行矩阵处理,需要将其转换为矩阵数据,应用函数cell2mat()函数,如函数CI中的第一句和第二句,处理完的A结果如图6所示:

图6 Cell转Mat函数处理

图7 CI函数处理结果

将数据转换为Matrix格式,将目前的路径修改到需要调用的m文件所在的文件夹,Current Folder打开CI.m所在的文件夹。在Windows窗体中书写代码:

调用写好的的函数function[CI1]=CI(A,B),执行获得结果。

6 结 论

大量数据的自动化提取结合Matlab多重函数的调用是提高物理试验完成速度的利器。采用Matlab Tool Box中的Visual Query Builder,不需要编制任何一句代码,快速辅助研究者从各类数据库中抽取数据,赋值变量,应用丰富函数库编制个性化Function,加上Figure的函数的便捷功能,快速实现物理试验的全过程。Matlab数据库工具箱是的使用是科学试验工作的有效保障。

[1] Mathworks.Database Toolbox Getting Started Guide [M].2012:1-32.

[2] 吴迪.基于Matlab及数据库技术的试验数据检验与存取研究[J].大学物理试验,2010,23(4):67-69.

[3] 郑志宏.Matlab在大学物理试验中的应用[J].大学物理试验,2005,18(4):82-83.

[4] 吴敏.Matlab数据库开发设计[J].工业控制计算机,2006,19(4):44-46.

[5] Duane Hanselman.精通Matlab7[M].北京:清华大学出版社,2006.

[6] 代文江,王强.基于计算机网络技术实验数据处理系统[J].大学物理实验,2013(1):85-88.

[7] 高宇飞,牟海维.Matlab语言在传感器实验数据处理中的应用[J].大学物理实验,2012(5):65-67.

Experimental Data Extraction and Application under Matlab Database Toolbox

GONG Wei-Wei
(China Academy of Railway Sciences,Beijing 100081)

Matrix computation and multi-field algorithm library is the core of scientific calculation software Malab.A lot of function tool boxes provide great convenience for research workers doing the professional field experiment.Although Matlab database toolbox opens automation calls the function of data,not every scientific experiments operating researcher have the ability to program and write the SQL statement while mass parameter assignment is the foundation of scientific experiments.Therefore this paper introduces using the toolbox Query Builder,call the ODBC/JDBC compliant database,large scale experimental data extraction,variables,function calls,parameters and calculation results of the graphical representation and scientific experiments.In order to realize without writing any computer statements to complete the large-scale data call assignment and function,aims to help the experimenter complete calculation of physical data quickly.

experimental data;Matlab;database

O4-39

A

10.14139/j.cnki.cn22-1228.2015.02.027

1007-2934(2015)02-0096-04

2014-11-18

中国铁道科学研究院基金(2014YJ105)、(2013YJ102)、(2013YJ105)

猜你喜欢

工具箱赋值数据源
L-代数上的赋值
会“叫”的工具箱和工具
强赋值幺半群上的加权Mealy机与加权Moore机的关系*
Web 大数据系统数据源选择*
基于MATLAB优化工具箱优化西洋参总皂苷提取工艺
基于不同网络数据源的期刊评价研究
算法框图问题中的易错点
机械加工机床工具箱的优化设计
利用赋值法解决抽象函数相关问题オ
基于真值发现的冲突数据源质量评价算法