Matlab数据库工具箱的使用
俗话说:工欲善其事必先利其器。既然是做算法研究和软件编程的,那么首先列出我的开发环境:
操作系统:Windows xp Professional SP3
开发工具:Visual Studio 2008+SP1中文版
  Silverlight 2.0
  Silverlight 2.0 Tools for Visual Studio 2008
  Expression Blend 2tool工具箱
数学计算工具:Matlab 7.10.0.499R2010a32
数据库:SQL Server 2005
参考资料:Microsoft MSDN 帮助文件 
Microsoft Silverlight SDK Document
Matlab 帮助文件
大量网上收集的资料和图书馆、实验室以及自己购买的书籍(太多了,不便列出)
第一篇笔记从Matlab总结起:由于我研究的数据是海量的而且要用到Matlab做运算,我自然想起了用数据库管理数据,然后在这些数据取出,转化为符合Matlab的运算要求矩阵。幸好,Matlab有数据库工具箱能很方便的解决这个问题。
一、从数据库中读取数据
1ODBC/JDBC连接数据库,打开Visual Query Builder定义数据源,具体做法:点击Matlab左下角的"Start"按钮,选择“Toolbox”——“Database”——“Visual Query Builder”,如下图:
2、添加数据源,具体做法:点击下图界面中的添加按钮,创建新的数据源 ,按照自己的实际情况,一步一步地完成设置,自此新的数据源添加完毕。

笔者选择的是 SQL Server Client
在下面框内添加自己要使用的数据库服务器名:
完成上述操作后一直点击下一步,直至如下图选择所需的数据库名:
点击下一步、完成。
3、配置完数据源,在M文件中编写代码,连接数据库并从中取出数据:
笔者所使用的数据源:
 
function MM=ImportData()
%--------------------------------------------------------------------------
%连接数据库,导入数据
%--------------------------------------------------------------------------
logintimeout(5);% 设置创建连接的极限时间
connA = database('Freeway_TrafficFlowData','','');%连接数据库
ping(connA); % 检测连接状态
cursorA=exec(connA,'SELECT NUM FROM Freeway_TrafficFlowData.dbo.XiangHe_EntranceData');
%执行SQL语言
cursorA=fetch(cursorA); % 取出数据的所有行
MM=cursorA.Data ; % 把取出的数据存在MM
MM=double(vpa(cell2mat(MM)));
%把取出的元胞类型的数据转化为Double类型的矩阵
close(cursorA) ; % 记得随手关闭游标
close(connA)

  生成的矩阵的部分截图:

 
二、向数据库中写入数据
要是更换数据库可以参照前一节的前两点,步骤类似,不再赘述!主要谈谈如何向数据库中写入格式时间:
for j=1:n
G(j)=mat2cell(Output(j));
end
Output=G';
%把数据转化为能写入到数据库中的元胞类型
t=datestr(733774:1/24:(733775-1/24));
s=cellstr(t);
%构建时间数组,并转化为元胞类型
timeoutB=logintimeout(5); % 设置创建连接的极限时间
connB = database('Freeway_TrafficFlowData', '', '');%连接数据库
ping(connB); % 检测连接状态
colnames = {'shiyan','shi'};
fastinsert ( connB,'Freeway_TrafficFlowData.dbo.shiyant',colnames ,[Output,s]);
% 利用 fastinsert 函数,注意是中括号后面两个变量
close(connB);
  写入到数据库中的截图:

以上就是,Matlab Database Toolbox的简单使用范例,个人觉得挺好的,与大家分享了。
 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。