如何在matlab中实现与数据库的连接

如何在matlab中实现与数据库的连接,第1张

1要使用连接access数据库,首先需要配置ODBC数据源,方法是:1.在命令行中输入odbcad32,打开odbc资源管理器

2.选择用户 DSN(user DSN),添加

3.在d出的创建新用户数据源中选择Microsoft Access Driver(*.mdb),点击确认

4.在d出的新对话框中输入数据源名和描述,数据源名很重要在后面的连接中要用到

5.输完数据源名和描述后,选择数据源,找到你用access创建的数据库名称以mdb结束的文件,点击确认即可

首先要安装mysql驱动程序包

Step 1: 将mysql-connector-java-5.1.7-bin.jar文件拷贝到......\MATLAB\R2009a\java\jar\toolbox

Step 2: 到......\MATLAB\R2009a\toolbox\local目录下,找到classpath.txt文件,打开,并添加用来加载mysql的jdbc驱动语句:

$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar

Step 3:重新打开MATLAB即可

驱动程序安装成功后,接来下要是matlab连接mysql数据库的代码:

conn =database('databasename','username','password','driver','databaseurl')

连接成功后,返回连接对象。

参数如下:

*databasename: 数据库名称.

*driver: JDBC driver.

*username and password: 用户名和密码.

*databaseurl: 类似于jdbc:subprotocol:subname. subprotocol 是数据库类型,

subname 类似于//hostname:port/databasename.

如果matlab和数据库建立了连接,将返回类似于如下信息:

Instance: 'SampleDB'

UserName: ''

Driver: []

URL: []

Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]

Message: []

Handle: [1x1 sun.jdbc.odbc.JdbcOdbcConnection]

TimeOut: 0

AutoCommit: 'off'

Type: 'Database Object'

连接mysql的代码如下:

conn = database('tissueppi','root','root','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/tissueppi')

连接成功后,就可以用exec函数执行sql语句

exec函数执行sql语句并返回一个开指针

语法如下:

curs = exec(conn,'sqlquery')

例如:curs = exec(conn, 'select * from customers')

执行完查询后,还要将查询结果从开放cursor对象导入到对象curs中,该功能是用

cursor.fetch函数实现的。

语法如下:

curs = fetch(curs)

使用curs.Data来显示数据,curs.Data返回一个CELL结构,可以先把CELL结构转换成

MATRIX结构再取值:

cur =cell2mat(cur)

a=cur(1,1)

则查询结果就加到了向量a中

注意:

在exec函数执行查询过程中,有的sql语句要输入变量,这时可使用strcat函数完成该

功能。

t = strcat(s1, s2, s3, ...)

for(t=1:10)

sql1 = strcat('select count(did) from rss_genepairs_u where gocc>=',num2str(t),' || gomf >= ',num2str(t),' || gobp >= ',num2str(t))

end

完整代码如下:

conn = database('tissueppi','root','root','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/tissueppi')

for t=0.5:0.01:0.91

for x=0.5:0.1:11

sql = strcat('select count(did) from rss_genepairs_x2 where score <=',num2str(x),' and did in(select did from rss_genepairs_u where gocc >=',num2str(t),' || gomf >= ',num2str(t),' || gobp >= ',num2str(t),')')

aTemp = exec(conn,sql)

aTemp = fetch(aTemp)

a = aTemp.Data

a = cell2mat(a)

a= a(1,1)

end

end

你可以直接在m文件里面用xlswrite函数:(filename/sheet/range都是要加单引号滴)

xlswrite(filename,

M);将矩阵M的数据写入名为filename的Excel文件中。

xlswrite(filename,

M,

sheet);将矩阵M的数据写入文件名为filename中的指定的sheet中。

xlswrite(filename,

M,

range);将矩阵M中的数据写入文件名为filename的Excel文件中,且由range制定存储的区域,例如'C1:C2'.

xlswrite(filename,

M,

sheet,

range)

;在上一条命令的基础上指定了所要存储的sheet。

status

=

xlswrite(filename,

...)

;返回完成状态值。如果写入成功,则status为1反之写入失败,则status为0.

[status,

message]

=

xlswrite(filename,

...);返回由于写入 *** 作而产生的任何错误或警告信息

应用举例

例一:将数据写入默认的工作表中

将一七元素向量写入testdata.xls中。默认格式下,数据将写入文件中第一个工作表的A1至G1单元格。

xlswrite('testdata.xls',

[12.7

5.02

-98

63.9

0

-.2

56])

例二:将混合数据写入制定工作表中

d

=

{'Time',

'Temp'

12

98

13

99

14

97}

s

=

xlswrite('tempdata.xls',

d,

'Temperatures',

'E1')

s

=

1

Time

Temp

12

98

13

99

14

97

例三:向文件中添加新的工作表

现将上例中的数据写入tempdata.xls中并不存在的一个工作表中,在这种情况下,xlswrite会添加一个新的工作表,名称由用户指定,此时xlswrite会显示警告提示添加了新的工作表。xlswrite('tempdata.xls',

d,

'NewTemp',

'E1')

Warning:

Added

specified

worksheet.

如果不想看到这些警告,可以输入下列命令。

warning

off

MATLAB:xlswrite:AddSheet

再一次输入写入命令,这次创建另外一个新的工作表NewTemp2,此时不再显示提示信息,但仍可以用msg命令提取该信息。

[stat

msg]

=

xlswrite('tempdata.xls',

d,

'NewTemp2',

'E1')

msg

msg

=

message:

'Added

specified

worksheet.'

identifier:

'MATLAB:xlswrite:AddSheet'

book.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9886424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存