文档库 最新最全的文档下载
当前位置:文档库 › matlab调用数据库

matlab调用数据库

matlab调用数据库
matlab调用数据库

[原创]Matlab通过ODBC的方式调用数据库

Matlab数据库编程指南-Godman

Matlab与数据库链接有三种方法,本文只讲述其中以ODBC的方式进行链接。

第一部分:读取数据其相关信息查看

1. 配置数据源

“控制面板”----“管理工具”——“数据源(ODBC)”——“添加”——“创建数据源名称和选择数据库文件”(具体操作见GIF图片操作)。

2. 建立链接对象——database

调用格式:

conna=database(‘datasourcename’,’username’,’password’);

如conna=database('SampleDB','','');其中SampleDB为上文中创建的数据源名称,当默认情况下,数据库文件的username和password为空。

3. 建立并打开游标——exec调用格式:

curs=exec(conna,'sqlquery');

如curs=exec(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从数据库文件中读取数据到matlab中的基本步骤。

5. 数据返回类型

从数据库中读取数据到matlab有三种数据类型(默认为元胞类型cellarray),分别为元胞类型(cellarray),数字型(numeric),结构型(structure)。可以在链接数据库之前通过setdbprefs 函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric型的数据,这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。我曾经从数据库中读取过100万个数据,用cellarray时用了16s,但是用numeric时却只用了8s,速度提高很大啊,对电脑配置不好的来说,很有帮助的。(还有我的电脑很烂,1.3GHz,384M内存,可能让大家见笑了…….)

调用格式:

setdbprefs(‘datareturnformat’,’numric’)

6. 养成良好习惯,随手关闭链接对象和游标——close

当不再使用数据库的链接对象时要及时关闭,这样才能及时的释放出内存,而且每次链接后所需要的内存量是非常大的,要是不及时关闭的话对后续计算的影响将非常非常的大。( 针对烂机子而言,要是你的电脑超强也无所谓的…..)

调用格式:

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——数据库表的列名

exdata——matlab变量

如:insert(conna,'try',{'a1', 'a2'},[45 65])

commit(conna)%确认数据更改

9. 更新数据库中的数据——update调用格式:

update(conna,’tab’,colnames,exdata,’whereclause’)

conna——链接对象

tab——数据库文件的表名

colnames——数据库表的列名

exdata——matlab变量

whereclause——SQL的where字句

如:update(conna,'try',{'a1', 'a2'},[45 65],’where XX=’XX’’)

commit(conna)%确认数据更改

10. 建立新表——exec,creat table

调用格式:

conna=database('SampleDB','','');

exec(conna,['create table Table(name string,age int)']);

close(conna);

Table——表名

name,age——字段名

第三部分:自己写的相关函数

下面是我在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:

调用格式:

StrSpliteToCell(Str1,Str2)

Str1为字符串源,str2为分隔号

如:

DataPath ='D:\Program Files\MATLAB71\work\data.txt'

Str='\'

StrSpliteToCell(DataPath, Str)

ans =

'D:'

'Program Files'

'MA TLAB71'

'work'

'data.txt'

13.

cell数据用字符分隔——CellStrJoinWithSeparator:

a={'D:'

'Program Files'

'MA TLAB71'

'work'

'data.txt'}

Str=CellStrJoinWithSeparator(a,'\')

Str =

Message: ''

ErrNum: 0

ans: 'D:\Program Files\MA TLAB71\work\data.txt'

14.

把txt文件中的数据写到数据库中

把txt文件中的数据写到数据库中由于matlab直接向数据库中保存数据时非常非常的费时,曾经用matlab直接向数据库中写数据时,100万个数据运行了20多分钟还没完,等的太久了就结束了……..

所以想到了先把数据保存为txt,再从txt写到数据库文件中,这样这样做的时间花费相对直接写来说几乎可以忽略了

把上面的data.txt中的数据写到数据库文件中

conna=database('SampleDB','','');

DataPath='D:\Program Files\MATLAB71\work\data.txt'

f=CreateSchema(DataPath)

Txt2Access(conna,DataPath)

close(conna)

CreateSchema.m是一个写配置文件的函数:

Txt2Access.m是把数据写到数据库中:

matlab与sql总结

总结 一个星期前老师给了一个任务,要求用GUI做成一个simulink仿真界面,通过matlab与SQL的连接,然后把仿真结果存到sql里建的数据库里。从一开始什么都不懂,到现在可以用GUI做一个简单的界面,以及matlab与sql的连接,这一个星期感慨颇多,尤其是查阅相关资料的痛苦,及找到可以借鉴资料的喜悦,到最后逐渐有了一个清晰的思想。过程如下: 一首先了解GUI 1.1 GUI简介[1,2] 图形用户界面(graphical user interface,GUI)是由窗口、光标、按键、菜单、文字说明等对象(Ob-ject)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等假如科技工作者仅仅执行数据分析、解方程等工作,一般不会考虑GUI 的制作。但是如果想向客户提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面是最好的选择之一。 开发实际的应用程序时应该尽量保持程序的界面友好,因为程序界面是应用程序和用户进行交互的环境。在当前情况下,使用图形用户界面是最常用的方法。提供图形用户界面可使用户更方便地使用应用程序,不需要了解应用程序怎样执行各种命令,只需要了解图形界面组件的使用方法;同时,不需要了解各种命令是如何执行的,只要通过用户界面进行交互操作就可以正确执行程序。 在Matlab7.0中,图形用户界面是一种包含多种图形对象的界面,典型的图形界面包括图形显示区域、功能按钮空间以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和时间编程。这样,当用户激活对应的GUI对象时,就能执行相应的时间行为。最后,必须保存和发布自己创建的GUI,使得用户可以应用GUI对象。在Matlab中,所有对象都可以使用M文件进行编写。GUI也是一种Matlab对象,因此,可以使用M文件来创建GUI。使用M文件创建GUI的方法也是最基础的,使用其他方法创建GUI图形界面时,实现图形控件的各种功能时,也需要编写相应的程序代码。 除了使用M文件来创建GUI对象之外,Matlab还为用户开发图形界面提供了一个方便高效的集成开发环境:Matlab图形用户界面开发环境(matlab graphical user interface development envi-ronment)简称GUIDE,其主要是一个界面设计工具集。Matlab7.0将所有GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用GUIDE创建GUI之外,还可以将设计好的GUI界面保存为一个FIG资源文件,自动生成对应的M文件。该M文件包含了GUI初始化代码和组建界面布局的控制代码。 使用GUIDE创建GUI对象执行效率高,可以交互式地进行组件布局,还能生成保存和发布GUI的对应文件。 FIG文件:该文件包含GUI图形窗口及其子对象的完全描述,包含所有相关对象的属性信息,可以调用hgsave命令或者使用M文件编辑器的File>Save命令生

Matlab文件读取和写函数总结

Matlab读取文件函数总结 1.load读取方式 a.基本说明: 只能读取数值数据,不能读取含文本的数据;日期按数值读取。 b.调用方式: a=load(filename); c.有无分隔符限制: 无需输入分隔符,可自动识别空格、逗号、分号、制表符。 d.能否自定义读取范围: 不能。 e.适用文件类型: txt、csv。 2.importdata读取方式 a.基本说明: 可读取数值数据和含文本的数据,但是要求文本在数据的第一行或第一列。返回值分为数值部分(data)和文本部分(textdata) b.调用方式: a=importdata(filename,delm,nheaderlines); filename:文件名(如果文件在其他路径下,文件名前需加所在路径。) delm:分隔符 nheaderlines:从第nheaderlines+1行开始读取数值数据。 c.有无分隔符限制: 多列数据时需输入分隔符。若不输入分隔符,整行会被作为字符串放入一列。 d.能否自定义读取范围: 可从某一行开始读取数值数据。若使用importdata按钮,则可自定义读取范围和设置数据类型。 f.适用文件类型 txt、xls、xlsx、csv。 3.textscan读取方式 a.基本说明: 可对列按照自定义格式读取数据,必须输入每列的读取格式,可跳过某个列或几列。 按数值读取时,缺少值以NaN填补;按字符读取时,缺少值以空格填补。返回值按列放入元胞数组。 b.调用方式: c = textscan(fid,'format',n,'param',value) fid:文件指针。使用textscan函数时需先使用fopen函数打开数据文件,返回给fid 文件若不再使用,则需用fclose(fid)关闭文件。 ‘format’:定义每列的读取格式。例如%s表示按字符串读取、%d表示按整数读取、%D 按日期读取、%*表示跳过该列。level%u8表示将level1读取成1,去掉level。 ‘param’,value:这两个参数成对出现。例如’Delimiter’,’s’表示按分隔符为’,’进行读取。 c.有无分隔符限制 可自定义分隔符,不是必须的。 d.能否自定义读取范围:

MATLAB 数据库

基MATLAB 数据库 linspace(a,b,c)均匀生成介于a到b的c个值,c默认为100如linspace(0,100,5)即[0 25 50 75 100]linspace(-1.3,1.3)就是生成介于-1.3到1.3的100个值meshgrid是生成网格的函数,一般是生成二维网格矩阵数据,但这里生成的是三维网格矩阵数据。先以二维数据为例,比如要绘制函数z=f(x,y)的图像x方向在[1,2,3,4,5]五个点上采样,即x=1:5y 方向在[10 20 30 40]四个点上采样,即y=10:10:40那么就一共有5*4=20个采样点。分别为(1,10) (2,10) (3,10) (4,10) (5,10)(1,20) (2,20) (3,20) (4,20) (5,20)(1,30) (2,30) (3,30) (4,30) (5,30)(1,40) (2,40) (3,40) (4,40) (5,40)命令[X,Y]=meshgrid(x,y)生成的X就是这20个采样点的横坐标,Y既是其纵坐标,即X=1 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5Y=10 10 10 10 1020 20 20 20 2030 30 30 30 3040 40 40 40 40然后再对这20个采样点计算z的值,即Z=f(X,Y),最后用mesh(X,Y,Z)即可绘制图像三维网格数据与此类似,现在xyz三个方向都是取-1.3到1.3的100个数据,总共就是100^3即一百万个采样点,[x,y,z]=meshgrid(linspace(-1.3,1.3));中的x,y和z就分别是这一百万个采样点的三个维度上的坐标。而s=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (1/9)*y.^2.*z.^3;就得到了函数s=f(x,y,z)=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (1/9)*y.^2.*z.^3在这一百万个采样点中的值 size():获取矩阵的行数和列数 (1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。 (2)[r,c]=size(A), 当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。 (3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数,c=size(A,2) 该语句返回的时矩阵A 的列数。 Input() 数据输入 Disp() 输出项既可以是字符串也可以是矩阵 矩阵运算 w=gallery('cauchy',1000); %产生一个1000×1000的柯西矩阵 t1=clock; % 获取系统时间 w_norm=norm(w) %计算范数 t2=clock; %获取系统时间 t_norm=etime(t2,t1) %计算范数的耗时 t3=clock; %获取系统时间 w_normest=normest(w); %估计范数 t4=clock; %获取系统时间 t_normest=etime(t4,t3) %估计范数的耗时 特殊矩阵的创建 Zeros(m,n) 生成m*n个全零矩阵 Eye(m,n) 生成m*n个单位矩阵 One(m,n) 生成m*n个全1矩阵 Rand(m,n) 生成m*n个随机矩阵 Randn(m,n)生成m*n个标准正态分布随机矩阵linspace(a,b,c)均匀生成介于a到b的c个值,c 默认为100 magic(n) 产生n阶魔方矩阵 矩阵求值det(A) A为一个矩阵 矩阵求秩rank(A) 矩阵求迹trace(A) 即求对角线元素和也等于特征值之和a必须为方阵 矩阵的逆inv(A) 矩阵的伪逆pinv(A) 也称广义矩阵 矩阵特征值和特征向量[VB,DB]=eig(B). 多项式 poly2sym([1 3 2]) 创建多项式 ans = x^2 + 3*x + 2

MATLAB模块介绍$

MATLAB 模块介绍 -------- 数学 & 金融 u Curve Fitting Toolbox Curve Fitting Toolbox 扩展MATLAB 环境,集成数据管理,拟合,显示,检验和输入分析过程等功能。所有能通过GUI 使用的功能都可以通过命令行来进行。

u Database Toolbox ——与关系数据库交换数据 Database Toolbox提供了同任何支持ODBC/JDBC标准的数据库进行数据交换的能力。利用在工具箱中集成的Visual Query Builder工具,无需学习任何SQL语句就可以实现在数据库中查寻数据的功能。这样MATLAB就能够对存储在数据库中的数据进行各种各样的复杂分析。在MATLAB环境中,也可以使用SQL命令来进行如下操作: 对数据库数据进行读、写操作;应用简单或复杂的条件查询数据库中的内容。 特点: ?与支持ODBC/JDBC 数据库建立连接,包括Oracle 、Sybase SQL Server ,Sybase SQL Anywhere ,Microsoft SQL Sever ,Microsoft Access ,Informix Ingres 等。?支持SQL 语句,可以在MATLAB 环境下直接执行SQL 查询命令 ?动态数据调入:可以根据需要使用SQL 在MATLAB 中获取数据,本工具箱对某一种类型的数据库进行大量或小量的查询 ?数据类型保持:在MATLAB 中对数据的调入或调出操作都能保持原有的数据类型 ?多个对话能力,采用本工具箱可在MATLAB 中从一个数据库中调入数据,对那些数据进行分析,然后输出到另一个数据库中 ?处理大量数据的能力:采用本工具箱你可以一次或分几次处理大量的数据,这样能让你根据任务高效地进行数据处理 ?连续状态的数据库联接:一旦和某个数据库的联接建立起来后,数据库一直是打开的,除非你在MATLAB 中执行关闭语句。这提高了数据库的读取速度,减少了不必要的命令来调入、输出数据。 ?无需了解SQL 也能够对数据库数据进行查询。 功能: Database Toolbox 可以与流行的数据库交互数据,其中包括Oracle ,Sybase ,Microsoft SQL Server 及Informix 等。工具箱还允许在单个MATLAB 进程中对多个数据库进行操作,同时支持对大量数据处理。工具箱中包含的Visual Query Builder ,即使不知道SQL ,也能可视化地与数据库打交道。 u Financial Derivatives Toolbox Financial Derivatives Toolbox 用于分析金融衍生工具和投资。 特点 ?提供各种利息率模型 ?提供七种金融工具一系列计算的函数

Matlab文件操作及读txt文件(fopen,fseek,fread,fclose)

Matlab文件操作及读txt文件(fopen,fseek,fread,fclose) matlab文件操作 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。 1、文件的打开与关闭 1)打开文件 在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为: fid=fopen(文件名,…打开方式?) 说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下: λ…r?:只读方式打开文件(默认的方式),该文件必须已存在。 …r+?:读写方式打开文件,打开后先读后写。该文件必须已存在。λλ…w?:打开后写入数据。该文件已存在则更新;不存在则创建。 …w+?:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。λ λ…a?:在打开的文件末端添加数据。文件不存在则创建。

…a+?:打开文件后,先读入数据再添加数据。文件不存在则创建。 另外,在这些字符串后添加一个“t”,如…rt?或…wt+?,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen 函数默认的打开方式。 2)关闭文件 文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为: sta=fclose(fid) 说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(…all?)。 2、二进制文件的读写操作 1)写二进制文件 fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为: COUNT=fwrite(fid,A,precision) 说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据

基于MATLAB创建_删除远程SQL数据库的ADO技术

第20卷 第2期 四川理工学院学报(自然科学版) V ol .20 No .2 JOURNAL OF SICHUAN UNIVERSITY OF 2007年4月 SCIENCE & ENGINEERING (NATURAL SCIENCE EDITION ) Apr .2007 文章编号:1673-1549(2007)02-0043-04 基于MATLAB创建、删除远程SQL数据库的ADO技术 邹 明1,赵 刚1,李亚军1,王 华2 (1.四川大学电子信息学院,成都 610064;2.四川电子设备研究所,成都 610100) 摘 要:阐述了MATLAB调用ADO数据库接口驱动程序的方法。通过ADO/ADOX对象模型实现了在客户端远程创建、删除SQL数据库和表的操作。该项技术现已成功的用于某仿真实验平台的SQL数据库接口。该方法也适用于其他类型的数据库,对于有类似需求的用户有一定的指导意义。 关键词:MATLAB;SQL数据库;ADO;ADOX 中图分类号:TP311.52 文献标识码:A 引 言 通常开发基于SQL Server的数据库客户端应用程序时,必须预先在服务器端数据库上进行一系列配置工作,如创建库、表、视图等数据对象。只有在正确配置了服务器上的数据结构后,客户端程序方能正常运行。通常这些工作只能由有经验的数据库管理人员使用SQL Server数据库系统本身提供的辅助工具完成。但某些基于MATLAB的项目需要客户端程序在工作过程中动态创建、删除数据库和表,这就无法采用人工的方法实现。然而,MATLAB集成的Database Toolbox工具箱当前只支持传统的ODBC数据库驱动程序,而ODBC不支持远程创建、删除数据库等的操作。这只有依赖ADO数据库驱动程序才能实现。 本文介绍一种采用MATLAB调用外部动态链接库实现上述功能的方法,在动态链接库中同时引入ADO核心库和ADOX扩展库,以两者协同工作的方式,实现了在客户端自动创建、删除SQL Server远程数据库,包括自动建库、建表、删除库的操作。系统的层次框图如图1所示。 图1 系统层次框图 1 ADO 与ADOX 对象模型 ADO(ActiveX Data Object,ActiveX 数据对象)是Microsoft 提供的一种面向对象、与语言无关的数据访问应用程序接口。ADO类型库包含_ConnectionPtr 接口、_RecordsetPtr 接口和_CommandPtr 接口。 作为对ADO对象和编程模型的补充,ADOX包含了产生数据库模式的对象和控制数据库内对象安全的对象。ADOX在标准的ADO对象中又增加了9个对象:Catalog、Table、Column、Index、Key、Group、User、Procedure和View,ADOX类型库中的对象独立于ADO而存在,并且可以和ADO模型对象一起使用。 在VC++中可以方便的引入ADO和ADOX类型库。ADO和ADOX对象模型的类型库文件名分别为msado15.dll、msadox.dll。在VC++中引入类型库的实现方法如下: #import "c:\program files\Common Files\system\ado\msado15.dll" rename("EOF","adoEOF") rename("DataTypeEnum","adoDataTypeEnum") #import " c:\program files\Common Files\system\ado\msadox.dll" no_namespace rename("EOF", "adoXEOF") 收稿日期:2006-05-19 作者简介:邹 明(1985-)男,四川遂宁人,硕士生,主要从事电路系统设计自动化方面的研究。

Matlab的各种数据读取、文件读写等操作汇总

Matlab 的各种数据读取、文件读写等操作汇总 MATLAB 提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据;将工作空间的变量存储到磁盘文件中称为存写数据,又叫导出数据。至于选择哪种机制,则根据下面两个因素决定:?用户所执行的 操作是导入数据还是导出数据;?数据的格式为文本格式、 二进制格式还是如HDF 之类的标准格式。将数据导入MATLAB 中最容易的方法就是使用导入数据模板(Import Wizard) ,使用该模板时不需要知道数据的格式,只需指定包含这些数据的文件,然后导入模板会自动处理文件内容。本章重点内容如下:? 文件的打开和关闭? 文本文件的读取?存写ASCII数据?二进制数据的读取? 二进制数据的存写? 使用I/O文件函数进行数据读写?MAT 文件的读写 2.1 文件的打开和关闭2.1.1 文件的打开无论是要读写ASCII 码文件还是二进制文件,都必须先用fopen 函数将其打开,在默认情况下,fopen 以二进制格式打开文件,它的使用语法如下:fopen ('filename', 'mode') 其中filename 表示要读写的文件名称,mode 则表示要对文件进行的处理方式,如下:rt :以只读方式(Reading)打开文件wt:以只写方式(Writing)打开文件at:以追加方式(Appending)打开文件,新内容将从原文件后面续写r+t:以同时读写方式打开文件w+t :以同时读写创建文件,原文件内容被清除

a+t :以同时读和追加(Reading and Appdending) 方式,原文件内容被保留,新内容将从原文件的后面开始At :以读写方式打开或创建文件,适用于对磁带介质文件的操作Wt :以写入方式打 开或创建文件,原文件内容被清除,适用于磁带介质文件的操作fopen 函数有两个返回值,一个是返回一个文件标志(file Identifier) ,它会作为参数被传入其他对文件进行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。如果返回的文件标识是-1,则代表fopen无法打开文件,其原因可能是文件不存在,或是用户无法打开此文件权限。另一个返回值就是message ,用于返回无法打开文件的原因。为了安全起见,最好在每次使用fopen 函数时,都测试其返回值是否为有效值。下面以脚本m 文件为例来声明文件的打开。例 2-1 %exam1.m[f,message]=fopen('fileexam1', 'r')if f==-1disp (message); % 显示错误信息end 若文件fileexam1 不存在,则显示如下信息。Cannot open file.existence?permissions?memory?... 例2-2 %exam2.m[f,message]=fopen('fileexam2', 'r');if f==-1disp (message); % 显示错误信息else disp(f);end 若文件fileexam2 存在,则返回f值。 2.1.2 文件的关闭一旦完成文件的读写,最好关闭文件,以便对其进行其他操作。这时就可以使用fclose 函数来关闭文件,其适用语法如下:fclose(f) 。其中 f 为打开文件的标志,若fclose 函数返回值为0 ,则表示成功关闭 f 标志的文件;若返回值为-1,

matlab Access数据库大作业

TB 仿真杂货铺代做各种Matlab程序设计、GUI设计 本次代做情况: 代做代码已交付,买方恶意退单,因此将本次代做内容分享如下,有需要源码的联系上方店铺。

一、原始需求 matlab数据库开发小软件(用matlab的GUI功能制作,数据后期助教会发给大家,可以先仿照附表制作,数据库采用access) 1.1 数据库功能 (1)基本功能:数据库的基本功能包括数据采集、数据存储和数据管理。 1)数据采集主要包括数据录入、追加。 2)数据存储主要包括数据备份、删除和恢复。 3)数据管理包括数据查询(单条件、组合条件查询)、排序、统计、调用和分析。 (2)综合功能 数据库的综合功能包括人员权限管理和打印管理。通过设置用户密码确认登录人员身份,登录权限包括一般用户权限和管理员权限。管理员具有数据采集、数据存储和数据管理的权限,一般用户只有数据管理的权限。 1.2 数据框架 针对每一种结构,应包括基本数据、试验数据 (1)基本数据包括:技术参数(规格、功能、性能参数等)、结构参数(结构图、关键零部件尺寸等)、材料特性(泊松比、屈服强度等)、基本信息(厂家信息、出厂时间等)。 (2)样机/出厂试验数据包括:运行工况参数(温度、压力等)、试验次数/时间、故障数据(时间、次数、机理等)。 基本数据、试验数据的数据采集模板,见附表1~附表2。

附表1 基本数据

附表2 样机/出厂试验数据 二、Access数据库

三、GUI界面 1.登录界面 登录界面,可以实现用户和管理员登录,进入各自操作页面 2.用户操作页面 可以检索数据库内容,并对检索内容进行的某一字段进行正排和倒排排序。还可以统计检索结果中满足给定范围的所有数据行。 3.管理员页面

matlab文件操作及读txt文件

matlab文件操作及读txt文件 matlab文件操作 文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。 1、文件的打开与关闭 1)打开文件 在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为: fid=fopen(文件名,‘打开方式’) 说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下: λ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。 ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。λλ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。 ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。λ λ‘a’:在打开的文件末端添加数据。文件不存在则创建。 λ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。

另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。 2)关闭文件 文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为: sta=fclose(fid) 说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。 2、二进制文件的读写操作 1)写二进制文件 fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为: COUNT=fwrite(fid,A,precision) 说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。 例6.8 将一个二进制矩阵存入磁盘文件中。 >> a=[1 2 3 4 5 6 7 8 9]; >> fid=fopen('d:test.bin','wb') %以二进制数据写入方式打开文件

Matlab数据库编程指南-Godman

Matlab数据库编程指南-Godman Matlab与数据库链接有三种方法,本文只讲述其中以ODBC的方式进行链接。 本文件包含四部分,其中第三部分为我自己写的一些数据库函数操作的函数,第四部分为网上的一些资料。 如有疑问可以邮件联系tntuyh@https://www.wendangku.net/doc/cf15859034.html, Godman 2009.3.30 晚Good Luck! 第一部分:读取数据其相关信息查看 1.配置数据源 (1).“控制面板”----“管理工具”——“数据源(ODBC)”——“添加”——“创建数据源名称和选择数据库文件”。具体操作见“配置数据源.gif” (2).采用修改注册表,自动配置数据源。 DB_path='D:\Program Files\MATLAB71\work\StuSystem.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(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从数据库文件中读取数据到matlab中的基本步骤。 5.数据返回类型 从数据库中读取数据到matlab有三种数据类型(默认为元胞类型cellarray),分别为元胞类型(cellarray),数字型(numeric),结构型(structure)。可以在链接数据库之前通过setdbprefs 函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric型的数据,这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。我曾经从数据库中读取过100万个数据,用cellarray时用了16s,但是用numeric时却只用了8s,速度提高很大啊,对电脑配置不好的来说,很有帮助的。(还有我的电脑很烂,1.3GHz,384M内存,可能让大家见笑了…….) 调用格式: setdbprefs(‘datareturnformat’,’numric’)

MATLAB常用模块

commonly used blocks:常用模块 continuous:连续性模块 discontinuous:非续性模块 discrete:离散模块 logic and bit operations:逻辑和位操作模块组 lookup Tables:查询表模块组 Math Operations:数学运算模块组 sources:信号模块组 sinks:输出池模块组 Model Verification:模型验证模块库 Signal Routing:信号路线发送模块组 signal Attributes:信号属性置模块组 Model wide utilities:型实用模块库 Ports & Subsystems:端口和子系统模块库 User-Defined Functions:用户定义函数模块组 control system toolbox 控制系统工具箱 MATLAB 信号处理与通信 (76) Signal Processing Toolbox(信号处理工具箱) DSP System Toolbox(DSP系统工具箱) Communications System Toolbox(通信系统工具箱) Wavelet Toolbox(小波工具箱) Fixed-Point Toolbox(定点运算工具箱) RF Toolbox(射频工具箱) Phased Array System Toolbox(相控阵系统工具箱) MATLAB 数学、统计与优化 (116) Symbolic Math Toolbox (符号数学工具箱) Partial Differential Equation Toolbox (偏微分方程工具箱)Statistics Toolbox (统计学工具箱)

matlab 读数据库

zz: Matlab数据库编程指南 (2011-03-18 17:39:10) 转载▼ 标签: 杂谈 https://www.wendangku.net/doc/cf15859034.html,/view/5b9fb00abb68a98271fefa61.html Matlab数据库编程指南-Godman Matlab与数据库链接有三种方法,本文只讲述其中以ODBC的方式进行链接。 本文件包含四部分,其中第三部分为我自己写的一些数据库函数操作的函数,第四部分为网上的一些资料。 如有疑问可以邮件联系tntuyh@https://www.wendangku.net/doc/cf15859034.html, Godman 2009.3.30 晚Good Luck! 第一部分:读取数据其相关信息查看 1. 配置数据源 (1).“控制面板”----“管理工具”——“数据源(ODBC)”——“添加”——“创建数据源名称和选择数据库文件”。具体操作见“配置数据源.gif” (2).采用修改注册表,自动配置数据源。 DB_path='D:\Program Files\MATLAB71\work\StuSystem.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(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从数据库文件中读取数据到matlab中的基本步骤。 5. 数据返回类型 从数据库中读取数据到matlab有三种数据类型(默认为元胞类型cellarray),分别为元胞类型(cellarray),数字型(numeric),结构型(structure)。可以在链接数据库之前通过setdbprefs 函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric型的数据,这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。我曾经从数据库中读取过100万个数据,用cellarray时用了16s,但是用numeric时却只用了8s,速度提高很大啊,

Matlab数据文件的读写

Matlab数据文件的读写 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。MATLAB使用多种格式打开和保存数据。本章将要介绍MATLAB中文件的读写和数据的导入导出。 了解MATLAB的基本数据操作 掌握MATLAB中文本文件的读写方式 掌握MATLAB通过界面导入导出数据 了解MATLAB中的基本输入输出函数 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。 13.1.1 文件的存储 MATLAB支持工作区的保存。用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。保存工作区可以通过菜单进行,也可以通过命令窗口进行。 1. 保存整个工作区 选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。 2. 保存工作区中的变量 在工作区浏览器中,右击需要保存的变量名,选择Save

As…,将该变量保存为MAT文件。 3. 利用save命令保存 该命令可以保存工作区,或工作区中任何指定文件。该命令的调用格式如下: ● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。 ● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。 ● save('filename', 'var1', 'var2', ...):保存指定的变量在filename 指定的文件中。 ● save('filename', '-struct', 's'):保存结构体s中全部域作为单独的变量。 ● save('filename', '-struct', 's', 'f1', 'f2', ...):保存结构体s中的指定变量。 ● save('-regexp', expr1, expr2, ...):通过正则表达式指定待保存的变量需满足的条件。 ● save('..., 'format'),指定保存文件的格式,格式可以为MAT 文件、ASCII文件等。 13.1.2 数据导入

DB Toolbox连接Matlab和常用的数据库

DB Toolbox连接Matlab和常用的数据库 数据库工具箱(DB Toolbox)让用户使用MATLAB强大数据分析和可视化工具功能处理存储在数据库中的数据的复杂分析。在MATLAB环境下工作,可以用结构化查询语言(SQL)命令读,写数据库的数据,进行简单和高级条件的数据查询。并且可以连接MATLAB和数据库包括Oracle,Sybase,Microsoft SQL Server和Informix。可以用单一MATLAB同时访问多个数据库,进行大数据量的事务处理。不懂SQL的用户可以用Visual Query Builder处理数据。 一、重点 1)鲁棒接口能力。用ODBC/JDBC连接数据库,包括Oracle,Sybase SQL Server,Sybase SQL Anywhere,Microsoft SQL Server, Microsoft Access,Informix Ingres. 2)SQL语法。在MATLAB环境直接执行SQL查询 3)动态导入数据。调节SQL查询,把数据导入MATLAB。数据库工具箱满足小的和大的查询。 4)数据类型保存。在数据导入和导出行为MATLAB保存数据类型 5)同时访问多个数据库。从数据库导入数据,对该数据执行计算,然后导入到另一个数据库。 6)处理大数据集的能力。 7)连续状态的数据库连接:一旦和某个数据库的连接建立后,数据库一直是打开的,除非在MATLAB中执行关闭语句。这提高了数据库的读取速度,减少了不必要的命令来调入,输出数据。 8)Visual Query Builder.该图形用户接口列数据源和所有表和字段,不懂SQL的用户可以访问和查询数据库 二、函数列表

如何在matlab中读取TXT数据文件

如何在matlab中读取TXT数据文件 文章来源:不详作者:佚名 -------------------------------------------------------------------------------- 该文章讲述了如何在matlab中读取TXT数据文件. 今天需要做个matlab读取txt文件,在网上收集了下,查到了几篇不错的,总结一下,方便大家(包括me)使用: 下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以。 function dataout=dataread(filein,fileout,line) fidin=fopen(filein,'r'); fidout=fopen(fileout,'w'); nline=0; while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行

nline=nline+1; if nline==line fprintf(fidout,'%s\n',tline); dataout=tline; end end fclose(fidin); fclose(fidout); %%%%%%%%%%%%%%%%%%%%%%%%%% 调用格式:dataout=dataread(filein,fileout,line) 如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据

a=textread('ll.txt'); t=a(1:43,4:10); 1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行。 根据txt文档不同种类介绍不同的读取数据方法 转自:https://www.wendangku.net/doc/cf15859034.html,/youngbrave/blog/item/878db31fcd4f220f304e15bb.html 一、纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为“17.901 -1.1111 33.045 17.891 -1.1286 33.045 17.884 -1.1345 33.045” 可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。 二、中英文和数据如test1.txt “你好 欢迎来到

matlab文件操作fopen,fseek,fread,fclose等

文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。 1、文件的打开与关闭 1)打开文件 在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为: fid=fopen(文件名,…打开方式?) 说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下: …r?:只读方式打开文件(默认的方式),该文件必须已存在。λ …r+?:读写方式打开文件,打开后先读后写。该文件必须已存在。λ …w?:打开后写入数据。该文件已存在则更新;不存在则创建。λ …w+?:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。λ …a?:在打开的文件末端添加数据。文件不存在则创建。λ …a+?:打开文件后,先读入数据再添加数据。文件不存在则创建。λ 另外,在这些字符串后添加一个“t”,如…rt?或…wt+?,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。 2)关闭文件 文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为: sta=fclose(fid) 说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(…all?)。 2、二进制文件的读写操作 1)写二进制文件 fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为: COUNT=fwrite(fid,A,precision) 说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。 例6.8 将一个二进制矩阵存入磁盘文件中。 >> a=[1 2 3 4 5 6 7 8 9]; >> fid=fopen('d:\test.bin','wb') %以二进制数据写入方式打开文件 fid = 3 %其值大于0,表示打开成功 >> fwrite(fid,a,'double') ans = 9 %表示写入了9个数据

相关文档