2022年Matlab数据库编程指南-Godman .pdf
《2022年Matlab数据库编程指南-Godman .pdf》由会员分享,可在线阅读,更多相关《2022年Matlab数据库编程指南-Godman .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Matlab 数据库编程指南-Godman Matlab 与数据库链接有三种方法,本文只讲述其中以ODBC 的方式进行链接。本文件包含四部分,其中第三部分为我自己写的一些数据库函数操作的函数,第四部分为网上的一些资料。如有疑问可以邮件联系Godman 2009.3.30 晚 Good Luck !第一部分:读取数据其相关信息查看1.配置数据源(1).“控制面板”-“管理工具”“数据源(ODBC ) ”“添加”“创建数据源名称和选择数据库文件”。具体操作见“配置数据源.gif”(2).采用修改注册表,自动配置数据源。 DB_path=D:Program FilesMATLAB71workStuS
2、ystem.mdb; DB_sourcename=Godman;LinkDB(DB_path,DB_sourcename,1); (LinkDB为自编函数 )2.建立链接对象database调用格式:conna=database( datasourcename , username , password);如 conna=database(SampleDB, , ); 其中 SampleDB 为上文中创建的数据源名称,当默认情况下,数据库文件的username和 password为空。3.建立并打开游标exec调用格式:curs=exec(conna,sqlquery) ;如curs=exec
3、(conna,select * from database) 其中 conna 为上文中链接对象,select * from database表示从表 database中选择所有的数据 .4.把数据库中的数据读取到Matlab 中fetch调用格式:curs=fetch(curs,RowLimit); Data=curs.Data;% 把读取到的数据用变量Data 保存 .如curs=fetch(curs);把所有的数据一次全部读取到Matlab中, RowLimit为每次读取的数据参数的行数,默认为全部读取,但是全部读取会很费时间(和计算机性能很大关系)。上述四点是matlab从数据库文件中
4、读取数据到matlab中的基本步骤。5.数据返回类型从数据库中读取数据到matlab 有三种数据类型(默认为元胞类型cellarray) ,分别为元胞类型 (cellarray) , 数字型(numeric) , 结构型(structure) 。可以在链接数据库之前通过setdbprefs函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric 型的数据, 这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。我曾经从数据库中读取过100 万个数据,用cellarray 时用了 16s,但是用numeric 时却只用了8s,速度提高很大啊,对电脑配置不好的来说,很有帮助
5、的。(还有我的电脑很烂,1.3GHz,384M 内存,可能让大家见笑了 .)调用格式:setdbprefs( datareturnformat , numric ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 6.养成良好习惯,随手关闭链接对象和游标close当不再使用数据库的链接对象时要及时关闭,这样才能及时的释放出内存,而且每次链接后所需要的内存量是非常大的,要是不及时关闭的话对后续计算的影响将非常非常的大。( 针对烂
6、机子而言,要是你的电脑超强也无所谓的.) 调用格式:close(curs) close(conna) 7.查看数据相关信息Rows-查看数据行数调用格式: numrows=rows(curs) Cols查看数据列数调用格式: numcols=cols(curs) Attr 查看数据属性调用格式: attribute=attr(curs) 第二部分:把数据写入到数据库中8.添加数据到表中insert函数调用格式:insert(conna, tab ,colnames,exdata) conna 链接对象tab数据库文件的表名colnames 数据库表的列名exdatamatlab变量如:inse
7、rt(conna,try, a1, a2,45 65) commit(conna)%确认数据更改9.更新数据库中的数据update调用格式:update(conna, tab ,colnames,exdata, whereclause ) conna 链接对象tab数据库文件的表名colnames 数据库表的列名exdatamatlab变量whereclause SQL 的 where 字句如: update(conna,try, a1, a2,45 65,where XX= XX )commit(conna)%确认数据更改10. 建立新表exec,creat table 调用格式:conna
8、=database(SampleDB, , );exec(conna,create table Table(name string,age int); close(conna); Table表名name ,age 字段名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 以上部分是从董振海写的精通MATLAB7编程与数据库应用中根据我使用database toolbox的经验摘抄的,在此向作者致谢。第三部分:自己写的相关函数下面是
9、我在matlab 的数据库分析项目的过程中自己写的和用到的关于数据库操作的相关函数的介绍:11. 把数据写入到txt 文件中 . 调用格式:data=rand(100,100);dlmwrite(data.txt,data,delimiter, , newline, pc);由于 matlab 的数据类型默认为双精度的,写入到 txt 中也是双精度的,此时可以用下面操作来减少有效位数从而减小文件大小。data=fix(10000*data)/10000;这样保存的txt 文件要更小一些. 12. 把字符串分隔为cell 数据 StrSpliteToCell 调用格式:StrSpliteToCe
10、ll(Str1,Str2) Str1 为字符串源,str2 为分隔号如:DataPath =D:Program FilesMATLAB71workdata.txtStr=StrSpliteToCell(DataPath, Str)ans = D: Program Files MATLAB71 work data.txt 13. cell数据用字符分隔CellStrJoinWithSeparator a= D:Program FilesMATLAB71workdata.txtStr=CellStrJoinWithSeparator(a,)Str = Message: ErrNum: 0 ans:
11、 D:Program FilesMATLAB71workdata.txt 14. 把 txt 文件中的数据写到数据库中由于 matlab 直接向数据库中保存数据时非常非常的费时,曾经用matlab 直接向数据库中写数据时, 100 万个数据运行了20 多分钟还没完,等的太久了就结束了 . 所以想到了先把数据保存为txt,再从 txt 写到数据库文件中,这样这样做的时间花费相对直接写来说几乎可以忽略了把上面的data.txt 中的数据写到数据库文件中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
12、- - 第 3 页,共 10 页 - - - - - - - - - conna=database(SampleDB, , );DataPath=D:Program FilesMATLAB71workdata.txtf=CreateSchema(DataPath)Txt2Access(conna,DataPath)close(conna)CreateSchema.m 是一个写配置文件的函数Txt2Access.m 是把数据写到数据库中第四部分:其他参考资料http:/ Toolbox 2 和关系数据库进行数据交换Database 工具箱可以使你使用MATLAB 的数据分析和可视化工具对存储在数
13、据库中的数据进行分析。在MATLAB 工作环境中,您可以使用结构化查询语言进行: 对数据库中的数据进行读写 使用约束条件对数据库进行操作您可以在 MATLAB 中和绝大多数的数据库进行交互, 包括 Oracle 、Sybase、Microsoft SQL Server、MySQL 、PostgreSQL 以及 Microsoft Access 。该工具箱还允许您在单个的MATLAB 任务中同时存取多个数据库并且支持事务特性。它包含了Visual Query Builder ( 可视化查询工具),它可以使您在不熟悉SQL 的情况下和数据库进行交互。Visual Query Builder 可以快
14、速对您的数据进行存取和图表显示关键特性 支持 ODBC/JDBC 连接的数据库接口包括 Oracle 、Sybase、Microsoft SQL Server 、MySQL 、PostgreSQL 以及Microsoft Access 从 MATLAB 中直接执行查询语句 对于大数据量查询,将增量获取数据 在所有的数据导入和导出的过程中,保留数据类型 单个的 MATLAB 任务中可以同时存取多个数据库 从一个数据库中导入数据,完成计算后,将结果输出到另外一个数据库 在单个事务中获取大数据集,或者分割数据,通过多个事务来完成 通过在一个MATLAB 会话中保持数名师资料总结 - - -精品资料欢
15、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 据库连接来减少需要进行输入和输出数据所需要的语句,除非数据库连接被显式关闭 它可以使您在不熟悉SQL 的情况下和数据库进行交互在 MATLAB 中对 Microsoft Access 数据库进行查询数据库工具箱函数列表数据库访问函数clearwarnings 清除数据库连接警告close 关闭数据库连接commit 数据库改变参数database 连接数据库exec 执行 SQL语句和打开油标get 得到数据库属
16、性insert 导出 MATLAB 单元数组数据到数据库表isconnection 判断数据库连接是否有效isreadonly 判断数据库连接是否只读ping 得到数据库连接信息rollback 撤销数据库变化set 设置数据库连接属性sql2native 转换 JDBC SQL 语法为系统本身的SQL语法update 用 MATLAB 单元数组数据代替数据库表的数据数据库游标访问函数attr 获得的数据集的列属性close 关闭游标cols 获得的数据集的列数值columnnames 获得的数据集的列名称fetch 导入数据到MATLAB 单元数组get 得到游标对象属性querytimeo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Matlab数据库编程指南-Godman 2022 Matlab 数据库 编程 指南 Godman
限制150内