最近,要更新一些好的新算法,使用数据集,老师要求把数据集导入数据库,方便开发。 所以我在学习matlab,但是从网上下载的数据一般都是矩阵类型,怎么才能导入数据库? 我在网上找了,但是怎么也找不到合适的答案。 我自己试着写了解决方法。 方便以后使用,方便大家。
本节介绍如何在matlab中链接数据库。
Matlab和SQL Server数据库编程-Godman
1 .数据源配置
控制面板----管理工具——数据源(ODBC ) ——添加——创建数据源。 有关操作的详细信息,请参阅数据源配置-SQL Server.gif
2 .创建链接目标——数据库
调用格式:
conna=database (数据源名称、’username、’password );
例如
conna=database(db_SQL_server )、(sa )、(sa123456789 );
%数据库名称、用户名、密码;
其中,db_sql_server是上面创建的数据源名称,其馀的是在SQL安装过程中输入的用户名和密码。
3 .创建并打开光标——exec
调用格式:
CURS=exec(Conna,' sqlquery ' );
例如curs=exec(Conna,' select * from database ' () ) ) ) ) ) ) ) )。
这里,conna是上述链接目的地,select * from database表示从表数据库中选择了所有数据.
4 .将数据库中的数据读取到Matlab的——fetch
调用格式:
CURS=Fetch(CURS,RowLimit );
数据=curs.data; %用变量Data保存读取的数据。
例如curs=fetch(curs );
一次将所有数据全部导入Matlab。 RowLimit是每次读取的数据参数的行数,默认全部读取,但全部读取需要时间(与计算机性能有很大关系)。
以上四点是matlab将数据从数据库文件读取到matlab的基本步骤。
实例:
timeouta=logintimeout(5; 设置连接到%数据库的时间
CONN=database(db_SQL_server )、(sa )、(sa123456789 );
%数据库名称、用户名、密码
萍(conn );
cursora=exec(Conn,' SELECT * FROM Sh ' );
执行select语句,然后单击Sh:数据表名称
setdbprefs('datareturnformat ',' cellarray ' ) )。
;
%返回数据类型为元包(cell )类型,默认值为cell类型。 要在cell2mat ()中转换格式
Cursora=Fetch(Cursora );
将%数据库的内容写入MATLAB工作区
AA=cursorA.Data
获取%数据库的数据
关闭%连接
是close(cursora )
关闭(conn;
其他操作,如插入、删除、更新等可以参与基于以前编写的访问数据库的相关内容,以下函数可以参考,具体使用方法可以在Matlab中在help中找到。
数据库工具箱函数列表
数据库访问函数
clearwarnings清除数据库连接警告
close关闭数据库连接
commit数据库更改参数
数据库连接数据库
exec执行SQL语句并打开油标
get获取数据库属性
insert将MATLAB单元数组数据导出到数据库表中
isconnection确定是否启用了数据库连接
isreadonly确定数据库连接是否为只读
ping数据库连接信息
回滚将撤消对数据库的更改
设置set数据库连接属性
SQL朴素转换JDBC SQL语法是系统本身的SQL语法
update用MATLAB单元数组数据替换数据库表中的数据
数据库访问函数
attr检索到的数据集的列属性
关闭关闭光标
cols检索到的数据集的列值
columnnames检索的数据集的列名
fetch将数据导入MATLAB单元数组中
获取get光标对象属性
querytimeout数据库的SQL查询成功的时间
rows从中检索数据集的行数
设置set游标获取的行的限制
width获取数据集的列宽
数据库元数据函数
bestrowid获取数据库表的唯一行id
列权限具有数据库列的优先级
columns获取数据库表中的列名
crossreference得到了主健和外健的信息
dmd创建数据库元数据对象
导出密钥导出了外部健康信息
get获取数据库的元数据属性
importedkeys引入了外健信息
indexinfo检索数据库表的索引和统计
主密钥从数据库表或结构中检索主键信息
procedurecolumns检索目录恢复程序的参数和结果列
procedures获得了目录存储程序
supports确定是否支持数据库元数据
表权限获取数据库表的优先级
tables获取数据库表名称
版本列自动更新表列
请按照上述操作尝试自己写insert语句。
CONN=database(dataset,) sa,) admin609 ); for i=1:12103,insert(conn,' dataset ',{'index0',' index1',' index2',' index3',' index4',' index5) 索引11、索引12、索引13、索引14、索引15、索引16、索引17、索引18、索引19 索引32、索引33、索引34、索引41、索引42、索引43、索引44、索引45、索引46、索引46 索引59、索引60、索引61、索引62、索引63、b (
我写完了for循环。
具体的matlab操作见:http://math.ecnu.edu.cn/sxsy KC/jxnr/mat5. htm # _ TOC 378651269