怎么从matlab导出数据到access数据库

怎么从matlab导出数据到access数据库,第1张

使用Windows系统自带的数据源工具创建基于Access的数据库。具体步骤是:控制面板--》管理工具--》数据源(ODBC)---》用户DSN--》添加。创建数据源SampleDB。

二、在Matlab中连接ODBC数据源:可以使用database工具箱或者代码编程的方式,下面介绍编程的方式

1、连接数据库:

conn=database( 'SampleDB' , '' , '' )

2、测试数据库是否连接成功

ping(conn)

3、打开游标,并把执行SQL语句

cursor = exec(conn,'select from PeopleInfo')

4、读取数据,可以从游标中读取,也可直接读取

result=fetch(cursor)

5、关闭游标和链接

close(cursor)

close(conn)

备注:上面是采用cursorfetch的方式,也可采用databasefetch的方式

conn=database()

result=fetch(conn, sqlquery)

而cursorfetch 的编码方式是:

conn=database()

curs=exec(conn, sqlquery)

curs=fetch(curs)

result = cursData

A 使用简单的 UPDATE

下列示例说明如果从 UPDATE 语句中去除 WHERE 子句,所有的行会受到什么影响。

下面这个例子说明,如果表 publishers 中的所有出版社将总部搬迁到佐治亚州的亚特兰大市,表 publishers 如何更新。

UPDATE publishers

SET city = 'Atlanta', state = 'GA'

本示例将所有出版商的名字变为 NULL。

UPDATE publishers

SET pub_name = NULL

也可以在更新中使用计算值。本示例将表 titles 中的所有价格加倍。

UPDATE titles

SET price = price 2

B把 WHERE 子句和 UPDATE 语句一起使用

WHERE 子句指定要更新的行例如,在下面这个虚构的事件中,北加利福尼亚更名为 Pacifica(缩写为 PC),而奥克兰的市民投票决定将其城市的名字改为 Bay City。这个例子说明如何为奥克兰市以前的所有居民(他们的地址已经过时)更新表 authors。

UPDATE authors

SET state = 'PC', city = 'Bay City'

WHERE state = 'CA' AND city = 'Oakland'

必须编写另一个语句来更改北加利福尼亚其它城市的居民所在的州名。

C通过 UPDATE 语句使用来自另一个表的信息

本示例修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新销售记录。

UPDATE titles

SET ytd_sales = titlesytd_sales + salesqty

FROM titles, sales

WHERE titlestitle_id = salestitle_id

AND salesord_date = (SELECT MAX(salesord_date) FROM sales)

这个例子假定,一种特定的商品在特定的日期只记录一批销售量,而且更新是最新的。如果不是这样(即如果一种特定的商品在同一天可以记录不止一批销售量),这里所示的例子将出错。例子可正确执行,但是每种商品只用一批销售量进行更新,而不管那一天实际销售了多少批。这是因为一个 UPDATE 语句从不会对同一行更新两次。

对于特定的商品在同一天可销售不止一批的情况,每种商品的所有销售量必须在 UPDATE 语句中合计在一起,如下例所示:

UPDATE titles

SET ytd_sales =

(SELECT SUM(qty)

FROM sales

WHERE salestitle_id = titlestitle_id

AND salesord_date IN (SELECT MAX(ord_date) FROM sales))

FROM titles, sales

D 将 UPDATE 语句与 SELECT 语句中的 TOP 子句一起使用

这个例子对来自表 authors 的前十个作者的 state 列进行更新。

UPDATE authors

SET state = 'ZZ'

FROM (SELECT TOP 10 FROM authors ORDER BY au_lname) AS t1

WHERE authorsau_id = t1au_id

matlab本身的矩阵就可以保存,格式为mat。下次使用的时候可以直接读取,就像草稿纸一样,很方便。

在workspace中可以直接右键单击某个矩阵,将其保存,命令我也记不清了,看看matlab help吧,我手上没有。

补充:字符串转为变量名,好像在各种语言中都不能直接实现。但是你可以建立一个二维数组,第一列存储的是一个字符串变量名比如index01、index02等等,第二列存储它的数据,通过查找第一列的数据,获得它对应的值,这种方法可以实现你需要的功能。

以上。

专业路过的老狼

之前我一般是把sqlite的数据导出到excel里面,然后把数据复制到matlab里面再跑算法的。

感觉有点低效,所以最近两天安装了一个sqlite驱动,用matlab打开db文件,读出数据之后直接跑算法。

1 改变数据格式 当数据重复再命令行窗口时,整数以整形形式显示,其他值将以默认格式显示。MATLAB的默认格式是精确到小数点后4位。如果一个数太大或

2 disp函数 另一种显示数据的方法是用disp函数。disp需要一个数组参数,它将值显示在命令行窗口。如果这个数组是字符型,那么包含在这个数组中的字符串

3 用fprintf函数格式化输出数据

首先要安装mysql驱动程序包

Step 1: 将mysql-connector-java-517-binjar文件拷贝到\MATLAB\R2009a\java\jar\toolbox

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

$matlabroot/java/jar/toolbox/mysql-connector-java-517-binjar

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 commathworkstoolboxdatabasedatabaseConnect]

Message: []

Handle: [1x1 sunjdbcodbcJdbcOdbcConnection]

TimeOut: 0

AutoCommit: 'off'

Type: 'Database Object'

连接mysql的代码如下:

conn = database('tissueppi','root','root','commysqljdbcDriver','jdbc:mysql://localhost:3306/tissueppi');

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

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

语法如下:

curs = exec(conn,'sqlquery')

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

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

cursorfetch函数实现的。

语法如下:

curs = fetch(curs)

使用cursData来显示数据,cursData返回一个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','commysqljdbcDriver','jdbc:mysql://localhost:3306/tissueppi');

for t=05:001:091

for x=05:01: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 = aTempData;

a = cell2mat(a);

a= a(1,1);

end

end

用CRT以安装oracle数据库的用户连接oracle数据库所在服务器。 (以服务器为linux 为例)

输入命令: sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入。

连接成功后,输入“select username from dba_users”查看用户列表。

若修改某一个用户密码, 修改用户口令 格式为:

alter user 用户名 identified by 新密码;

以 apps 为例,密码修改为 123456 可输入

alter user apps identified by 123456;

这样就修改成功了。

以上就是关于怎么从matlab导出数据到access数据库全部的内容,包括:怎么从matlab导出数据到access数据库、Matlab 数据库编程 update用法、Matlab 中存储问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9847169.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存