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命令生

成该文件。FIG文件是一个二进制文件,包含系列化的图形窗口对象。所有对象的属性都是用户创建图形窗口时保存的属性。该文件最主要的功能是对象句柄的保存。

M文件:该文件包含GUI设计、控制函数及控件的回调函数,主要用来控制GUI展开时的各种特征。该文件基本上可以分为GUI初始化和回调函数2个部分,控件的回调函数根据用户与GUI的具体交互行为分别调用。应用程序M文件使用open-fig命令来显示GUI对象,但是该文件不包含用户界面设计的代码,对应代码由FIG文件保存。

1.2 设计GUI步骤

简单说来,一个好的界面应遵循以下3个原则:简单性(Simplicity)、一致性(Consistency)及习常性(Familiarity)。界面制作包括界面设计和程序实现。具体制作步骤如下[3,4]:

1)分析界面所要求实现的主要功能,明确设计任务;

2)在稿纸上绘出界面草图,并站在使用者的角度来审查草图;

3)按构思的草图,上机制作(静态)界面,并对其进行检查;

4)编写界面动态功能的程序,对功能进行逐项检查。

以上过程只是一般原则,在设计中,步骤之间也可能要交叉执行或复合执行;设计和实现过程往往不是一步到位的,可能需要反复修改,才能获得满意的界面。建议先进行界面布局编码,后进行动态交互功能的编码。

二数据库与matlab的连接

2.1 ODBC简介[5]

ODBC(开放式数据库的连接)是一种应用程序的接口(API)。这种接口提供了独立于任何的数据库管理系统编写应用程序的能力。ODBC通过ODBC驱动程序提供了对不同的数据库供应商的一组应用程序接口来给特殊的数据库管理系统(DBMS)。用户的应用程序使用这组API来调度ODBC驱动程序,然后驱动程序通过SQL语句同DBMS发生联系。DBC提供了数据库管理系统的标准接口,从而使应用人员在编程时不必关心底层的DBMS,大大提高了工作效率。

2.2 32位matlab与32 位sql位数据库之间的连接

2.2.1数据库的建立

在SQL Server20xx中建立数据库test,在其中建立表stock。

2.2.2 SQL数据源的配置

建立ODBC数据源:控制面板->管理工具->ODBC数据源->用户DNS。点击“添加”,数据源名称可任意命名。服务器选择自己指定的。

2.2.3 .MATLAB连接数据库M文件的编写

1 连接数据库

代码如下

>> conn=database('test','sa','123')%test是刚刚建立的数据库名称 %sa是数据库登陆名%‘123’是数据库登陆密码

2 检验数据库连接状态

>> Ping(conn); %用于查看现在数据库连接状态

3 数据写入

>>expdata=[20xx 7 12 000001 0.123432];

>>fastinsert(conn,{'year','month','day','id','stock_return'},expdata);

备注:

(1)Conn一个变量,是用于保存数据库连接字符窜的,

conn=database('test','sa','123');只要数据库已经连接上,后面就可以直接引用。

(2)'year','month','day','id','stock_return'是数据库表格中的字段名

(3)expdata=[20xx 7 12 000001 0.123432]是我们要写入数据库的信息,分别对应于数据表中的各个字段。这里我们写入数据库的是number型的,因此矩阵式数字型。即:expdata=[20xx 7 12 000001 0.123432]。

(4)写入数据前提是已经成功连接数据库。

4 数据的查询

代码:

>>curs=(conn,'select * from test.dbo.stock')%建立数据库的连接

>>curs=exec(conn,'select * from test.dbo.stock where id=1')%从test数据库,stock表格里面选择 股票代码为1的股票的所有信息

>>curs=fetch(curs)%取回数据库游标里面的数据;

>>curs.data%读取游标里面的数据

5 显示查询后的信息:

>>curs.data

6关闭链接对象和游标——close

当不再使用数据库的链接对象时要及时关闭,这样才能及时的释放出内存,而且

每次链接后所需要的内存量是非常大的,要是不及时关闭的话对后续计算的影响将非常非常的大。

close(curs)

close(conna)

2.3 64位matlab与64位sql数据库之间的连接(以下为网络整理未证实)

64位Matlab无法通过ODBC接口访问SQL Server,我们可以跳出ODBC,而直接使用JDBC来访问数据库

第一步,从Microsoft.COM 下载Microsoft SQL Server JDBC Driver 3.0,下载地址可以将上述关键字扔进Google中搜索就得到了。解压缩可以得到很多文件,我们需要的是其中的sqljdbc4.jar和sqljdbc.jar这两个文件。 其中后者是前者的子集,只要不出问题,直接使用前者就可以了。

第二步,在Matlab中加入jar。具体做法是找到"classpath.txt"文件,例如我的这个文件位置是 "D:\Matlab20xxB\toolbox\local\classpath.txt",在文件的最后加入sqljdbc4.jar的完整路径,例如我的是:

"D:/sqljdbc30/enu/sqljdbc4.jar",注意斜杠怎么写。

第三步,启动Matlab,启动过程中如果没有出错,那么这个JDBC Connector就可以用了。

上面三步就把JDBC Connector建好了。接下来我们就开始连接数据库。

第一步,建立一个到数据库的连接。假设SQL Server地址是 192.30.1.117, 端口是 1433, 数据库名称是RTQ,用户名user,密码 pwd,那么用下面的语句建立一个到该数据库的连接。

conn=database('RTQ','user','pwd','com.microsoft.sqlserver.jdbc.SQLServerDriver',... 'jdbc:sqlserver://192.30.1.117:1433;databaseName=RTQ');

参考文献

[1]MATLAB Application Program Interface Guide[C],TheMathworks Inc,1999

[2]王跃强、王纪龙、王云才,VB程序中实现调用MATLAB的方法[J],计算机应用,20xx,vol.21,No.2

[3]刘炳文编著,精通Visual Basic 6.0中文版[M]北京:电子工业出版社,1999.7

[4]刘卫国,科学计算与MATLAB语言[M],中国铁道出版社,20xx.4

[5]侯春生,陈汝义,袁爱进,乔 毅,唐明新.MATLAB/VB/SQL Server编程实现数据管理[J].微型电脑应用,Vol.18,No.7,20xx

 

第二篇:matlab实验心得总结

通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。

就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。 就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。

再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对 我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触过它的人吝啬是自己赞美之词。它不仅仅可以用来建模分析函数,还可以用来进行图形的建模和仿真,还可以用来分析系统和函数的参数稳定性等等。再次就不一一列举了,我怕三天也不会说完的。

最后我再次也希望通过这篇总结来表达自己对知道老师的感谢之情,谢谢您的不懈努力和耐心指导,才使得我再这次的实验过程中收获的这么多,也正式您的不吝教诲才使得我们在这次实验中学习和收获了许多的有用的知识和技巧,我相信在以后的学习或者工作中一定有其用武之地。过多的感谢无以言表,万分感激,百口不胜言表,至此敬礼!

相关推荐